FAILURE MAP
← Case archive

FA-90931 / Quantum circuit simulation / Open access

Pauli expectation maps the leftmost character to qubit 0 · case 01

<ZI> on |01> (qubit 0 excited) evaluates to -1 instead of +1.

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

ROOT CAUSE

Character k of the string is applied to qubit k instead of qubit n-1-k.

VERIFIED REPAIR

Apply character k to qubit n-1-k so the rightmost character addresses qubit 0.

Unsuccessful approach: The attempted repair flips the index for bit flips but still reads the phase bit from qubit k, an incomplete refactor.

Case contract

Input [n, amps, pauli]; pauli is an n-character string over I,X,Y,Z whose rightmost character acts on qubit 0 (LSB). Return the real expectation <psi|P|psi>/<psi|psi> rounded to 6 decimals. Errors: "length-mismatch", "bad-pauli" (any character outside uppercase IXYZ).

Why this case matters

Pauli expectation values are the observable layer of variational algorithms; string-order or phase slips bias every energy estimate.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(x):
    n, amps, pauli = x
    if len(pauli) != n:
        return 'length-mismatch'
    if any(c not in 'IXYZ' for c in pauli):
        return 'bad-pauli'
    psi = [complex(a, b) for a, b in amps]
    acc = 0j
    for i, v in enumerate(psi):
        j = i
        phase = 1 + 0j
        for k, c in enumerate(pauli):
            q = k
            bit = (i >> q) & 1
            if c in 'XY':
                j ^= 1 << q
            if c == 'Z' and bit:
                phase = -phase
            elif c == 'Y':
                phase *= 1j if bit == 0 else -1j
        acc += psi[j].conjugate() * phase * v
    norm = sum(abs(v) ** 2 for v in psi)
    return round((acc / norm).real, 6) + 0.0
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: ZI on |01>', [2, [[0, 0], [1, 0], [0, 0], [0, 0]], 'ZI'], 1.0], ['regression: IZ on |01>', [2, [[0, 0], [1, 0], [0, 0], [0, 0]], 'IZ'], -1.0], ['regression: random expectation 12', [3, [[1.741, 0.945], [0.0, 0.0], [0.705, -0.271], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [-1.277, -0.575], [-0.732, 0.787]], 'ZZX'], 0.12672], ['control: Y on |+i>', [1, [[0.707107, 0], [0, 0.707107]], 'Y'], 1.0], ['control: X on |+>', [1, [[0.707107, 0], [0.707107, 0]], 'X'], 1.0], ['control: short string', [2, [[1, 0], [0, 0], [0, 0], [0, 0]], 'Z'], 'length-mismatch'], ['control: long string', [1, [[1, 0], [0, 0]], 'ZZ'], 'length-mismatch']], [['regression: random expectation 10', [3, [[0.0, 0.0], [1.545, 0.342], [0.0, 0.0], [-1.862, -1.433], [0.0, 0.0], [-0.66, -1.507], [0.913, -1.017], [-1.982, -0.009]], 'IZX'], 0.21787], ['regression: random expectation 12', [3, [[1.741, 0.945], [0.0, 0.0], [0.705, -0.271], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [-1.277, -0.575], [-0.732, 0.787]], 'ZZX'], 0.12672], ['regression: random expectation 13', [2, [[-0.447, -0.821], [0.189, -0.56], [0.105, 0.959], [0.741, -0.692]], 'XY'], 0.425941], ['control: short X on bell', [2, [[0.707107, 0], [0, 0], [0, 0], [0.707107, 0]], 'X'], 'length-mismatch'], ['control: short Y on three qubits', [3, [[0.5, 0], [0, 0.5], [0, 0], [0.5, 0], [0, 0], [0, 0], [0, 0], [0.5, 0]], 'YZ'], 'length-mismatch'], ['control: short Z on excited high qubit', [2, [[0, 0], [0, 0], [1, 0], [0, 0]], 'Z'], 'length-mismatch'], ['control: short ZX', [3, [[0.6, 0], [0.8, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], 'ZX'], 'length-mismatch']], [['regression: random expectation 14', [3, [[-0.975, 0.241], [-0.742, -0.382], [-0.693, 0.269], [0.083, -0.194], [0.274, 0.631], [0.759, 0.874], [0.919, -0.186], [-0.582, 0.068]], 'XIY'], -0.271617], ['regression: random expectation 15', [2, [[0.599, 0.301], [1.478, -0.323], [-0.934, -1.434], [0.207, -0.762]], 'YZ'], 0.153104], ['regression: random expectation 17', [3, [[1.838, 0.283], [0.891, 0.877], [1.546, 0.945], [-0.961, -0.859], [-1.128, 0.574], [1.09, 1.657], [-0.491, 1.307], [0.567, -1.553]], 'YYI'], -0.226212], ['control: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: unnormalized Z', [1, [[3, 0], [0, 4]], 'Z'], -0.28], ['control: random expectation 0', [1, [[0.071, 0.727], [-1.619, -1.464]], 'I'], 1.0], ['control: random expectation 1', [1, [[0.0, 0.0], [1.97, 0.65]], 'X'], 0.0]], [['regression: random expectation 19', [3, [[-1.467, 1.96], [1.04, 1.59], [0.568, -0.807], [-1.506, -0.905], [-0.169, 1.361], [-1.64, -0.753], [1.853, -1.891], [0.222, 0.162]], 'ZIY'], -0.70921], ['regression: random expectation 20', [2, [[0.0, 0.0], [0.216, -0.049], [0.0, 0.0], [0.005, -0.114]], 'XZ'], -0.214762], ['regression: random expectation 21', [3, [[-0.485, -0.865], [1.47, -0.226], [0.134, 0.654], [-0.754, 0.633], [-0.838, 0.604], [-0.388, 1.641], [1.972, 0.518], [0.312, -1.274]], 'XXZ'], -0.444446], ['control: random expectation 2', [1, [[0.489, 0.112], [-0.446, 0.868]], 'X'], -0.200793], ['control: random expectation 3', [1, [[-0.119, -0.141], [0.0, 0.0]], 'Z'], 1.0], ['control: random expectation 4', [1, [[-0.408, 0.461], [-0.359, 0.326]], 'Y'], 0.105809], ['control: random expectation 6', [2, [[0.423, -0.627], [-0.829, 0.103], [0.962, -0.142], [-0.494, -0.183]], 'XX'], -0.7271]], [['regression: random expectation 24', [3, [[0.86, 0.84], [0.244, 0.466], [-1.864, 1.492], [1.769, 1.866], [-1.943, -0.241], [-0.658, 0.243], [-0.056, 0.182], [1.614, -1.453]], 'YZX'], 0.076289], ['regression: random expectation 26', [2, [[0.234, -0.739], [-0.627, 0.79], [0.0, 0.0], [0.107, -0.508]], 'YI'], 0.247917], ['regression: random expectation 33', [2, [[0.861, -0.593], [0.645, 0.002], [0.346, -0.645], [0.069, 0.909]], 'IZ'], 0.132708], ['control: random expectation 7', [1, [[-1.206, 1.877], [0.69, -0.341]], 'I'], 1.0], ['control: random expectation 8', [1, [[0.52, 0.586], [-0.138, -0.781]], 'I'], 1.0], ['control: random expectation 9', [3, [[0.685, -0.091], [1.56, 1.459], [-1.17, 0.687], [-0.305, 1.609], [-0.876, -1.673], [-0.535, 0.008], [-1.818, 1.331], [1.693, 1.162]], 'IXI'], -0.046053], ['control: random expectation 11', [1, [[-0.422, -1.932], [-1.435, 1.833]], 'Z'], -0.161676]]]
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: ZI on |01>-1.01.0Failed
regression: IZ on |01>1.0-1.0Failed
regression: random expectation 120.1956240.12672Failed
control: Y on |+i>1.01.0Passed
control: X on |+>1.01.0Passed
control: short stringlength-mismatchlength-mismatchPassed
control: long stringlength-mismatchlength-mismatchPassed

SHA-256 / 503e73a1ed900850b8bf160b70d8747b6a9a4754c99ff46137f66435dae074c0

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(x):
    n, amps, pauli = x
    if len(pauli) != n:
        return 'length-mismatch'
    if any(c not in 'IXYZ' for c in pauli):
        return 'bad-pauli'
    psi = [complex(a, b) for a, b in amps]
    acc = 0j
    for i, v in enumerate(psi):
        j = i
        phase = 1 + 0j
        for k, c in enumerate(pauli):
            q = n - 1 - k
            bit = (i >> k) & 1
            if c in 'XY':
                j ^= 1 << q
            if c == 'Z' and bit:
                phase = -phase
            elif c == 'Y':
                phase *= 1j if bit == 0 else -1j
        acc += psi[j].conjugate() * phase * v
    norm = sum(abs(v) ** 2 for v in psi)
    return round((acc / norm).real, 6) + 0.0
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: ZI on |01>', [2, [[0, 0], [1, 0], [0, 0], [0, 0]], 'ZI'], 1.0], ['regression: IZ on |01>', [2, [[0, 0], [1, 0], [0, 0], [0, 0]], 'IZ'], -1.0], ['regression: random expectation 12', [3, [[1.741, 0.945], [0.0, 0.0], [0.705, -0.271], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [-1.277, -0.575], [-0.732, 0.787]], 'ZZX'], 0.12672], ['control: Y on |+i>', [1, [[0.707107, 0], [0, 0.707107]], 'Y'], 1.0], ['control: X on |+>', [1, [[0.707107, 0], [0.707107, 0]], 'X'], 1.0], ['control: short string', [2, [[1, 0], [0, 0], [0, 0], [0, 0]], 'Z'], 'length-mismatch'], ['control: long string', [1, [[1, 0], [0, 0]], 'ZZ'], 'length-mismatch']], [['regression: random expectation 10', [3, [[0.0, 0.0], [1.545, 0.342], [0.0, 0.0], [-1.862, -1.433], [0.0, 0.0], [-0.66, -1.507], [0.913, -1.017], [-1.982, -0.009]], 'IZX'], 0.21787], ['regression: random expectation 12', [3, [[1.741, 0.945], [0.0, 0.0], [0.705, -0.271], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [-1.277, -0.575], [-0.732, 0.787]], 'ZZX'], 0.12672], ['regression: random expectation 13', [2, [[-0.447, -0.821], [0.189, -0.56], [0.105, 0.959], [0.741, -0.692]], 'XY'], 0.425941], ['control: short X on bell', [2, [[0.707107, 0], [0, 0], [0, 0], [0.707107, 0]], 'X'], 'length-mismatch'], ['control: short Y on three qubits', [3, [[0.5, 0], [0, 0.5], [0, 0], [0.5, 0], [0, 0], [0, 0], [0, 0], [0.5, 0]], 'YZ'], 'length-mismatch'], ['control: short Z on excited high qubit', [2, [[0, 0], [0, 0], [1, 0], [0, 0]], 'Z'], 'length-mismatch'], ['control: short ZX', [3, [[0.6, 0], [0.8, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], 'ZX'], 'length-mismatch']], [['regression: random expectation 14', [3, [[-0.975, 0.241], [-0.742, -0.382], [-0.693, 0.269], [0.083, -0.194], [0.274, 0.631], [0.759, 0.874], [0.919, -0.186], [-0.582, 0.068]], 'XIY'], -0.271617], ['regression: random expectation 15', [2, [[0.599, 0.301], [1.478, -0.323], [-0.934, -1.434], [0.207, -0.762]], 'YZ'], 0.153104], ['regression: random expectation 17', [3, [[1.838, 0.283], [0.891, 0.877], [1.546, 0.945], [-0.961, -0.859], [-1.128, 0.574], [1.09, 1.657], [-0.491, 1.307], [0.567, -1.553]], 'YYI'], -0.226212], ['control: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: unnormalized Z', [1, [[3, 0], [0, 4]], 'Z'], -0.28], ['control: random expectation 0', [1, [[0.071, 0.727], [-1.619, -1.464]], 'I'], 1.0], ['control: random expectation 1', [1, [[0.0, 0.0], [1.97, 0.65]], 'X'], 0.0]], [['regression: random expectation 19', [3, [[-1.467, 1.96], [1.04, 1.59], [0.568, -0.807], [-1.506, -0.905], [-0.169, 1.361], [-1.64, -0.753], [1.853, -1.891], [0.222, 0.162]], 'ZIY'], -0.70921], ['regression: random expectation 20', [2, [[0.0, 0.0], [0.216, -0.049], [0.0, 0.0], [0.005, -0.114]], 'XZ'], -0.214762], ['regression: random expectation 21', [3, [[-0.485, -0.865], [1.47, -0.226], [0.134, 0.654], [-0.754, 0.633], [-0.838, 0.604], [-0.388, 1.641], [1.972, 0.518], [0.312, -1.274]], 'XXZ'], -0.444446], ['control: random expectation 2', [1, [[0.489, 0.112], [-0.446, 0.868]], 'X'], -0.200793], ['control: random expectation 3', [1, [[-0.119, -0.141], [0.0, 0.0]], 'Z'], 1.0], ['control: random expectation 4', [1, [[-0.408, 0.461], [-0.359, 0.326]], 'Y'], 0.105809], ['control: random expectation 6', [2, [[0.423, -0.627], [-0.829, 0.103], [0.962, -0.142], [-0.494, -0.183]], 'XX'], -0.7271]], [['regression: random expectation 24', [3, [[0.86, 0.84], [0.244, 0.466], [-1.864, 1.492], [1.769, 1.866], [-1.943, -0.241], [-0.658, 0.243], [-0.056, 0.182], [1.614, -1.453]], 'YZX'], 0.076289], ['regression: random expectation 26', [2, [[0.234, -0.739], [-0.627, 0.79], [0.0, 0.0], [0.107, -0.508]], 'YI'], 0.247917], ['regression: random expectation 33', [2, [[0.861, -0.593], [0.645, 0.002], [0.346, -0.645], [0.069, 0.909]], 'IZ'], 0.132708], ['control: random expectation 7', [1, [[-1.206, 1.877], [0.69, -0.341]], 'I'], 1.0], ['control: random expectation 8', [1, [[0.52, 0.586], [-0.138, -0.781]], 'I'], 1.0], ['control: random expectation 9', [3, [[0.685, -0.091], [1.56, 1.459], [-1.17, 0.687], [-0.305, 1.609], [-0.876, -1.673], [-0.535, 0.008], [-1.818, 1.331], [1.693, 1.162]], 'IXI'], -0.046053], ['control: random expectation 11', [1, [[-0.422, -1.932], [-1.435, 1.833]], 'Z'], -0.161676]]]
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: ZI on |01>-1.01.0Failed
regression: IZ on |01>1.0-1.0Failed
regression: random expectation 120.00.12672Failed
control: Y on |+i>1.01.0Passed
control: X on |+>1.01.0Passed
control: short stringlength-mismatchlength-mismatchPassed
control: long stringlength-mismatchlength-mismatchPassed

SHA-256 / 952cd39e27d584faec614f9ad43d9963f272249501e74ba554b6f312fe1c4a9b

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(x):
    n, amps, pauli = x
    if len(pauli) != n:
        return 'length-mismatch'
    if any(c not in 'IXYZ' for c in pauli):
        return 'bad-pauli'
    psi = [complex(a, b) for a, b in amps]
    acc = 0j
    for i, v in enumerate(psi):
        j = i
        phase = 1 + 0j
        for k, c in enumerate(pauli):
            q = n - 1 - k
            bit = (i >> q) & 1
            if c in 'XY':
                j ^= 1 << q
            if c == 'Z' and bit:
                phase = -phase
            elif c == 'Y':
                phase *= 1j if bit == 0 else -1j
        acc += psi[j].conjugate() * phase * v
    norm = sum(abs(v) ** 2 for v in psi)
    return round((acc / norm).real, 6) + 0.0
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: ZI on |01>', [2, [[0, 0], [1, 0], [0, 0], [0, 0]], 'ZI'], 1.0], ['regression: IZ on |01>', [2, [[0, 0], [1, 0], [0, 0], [0, 0]], 'IZ'], -1.0], ['regression: random expectation 12', [3, [[1.741, 0.945], [0.0, 0.0], [0.705, -0.271], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [-1.277, -0.575], [-0.732, 0.787]], 'ZZX'], 0.12672], ['control: Y on |+i>', [1, [[0.707107, 0], [0, 0.707107]], 'Y'], 1.0], ['control: X on |+>', [1, [[0.707107, 0], [0.707107, 0]], 'X'], 1.0], ['control: short string', [2, [[1, 0], [0, 0], [0, 0], [0, 0]], 'Z'], 'length-mismatch'], ['control: long string', [1, [[1, 0], [0, 0]], 'ZZ'], 'length-mismatch']], [['regression: random expectation 10', [3, [[0.0, 0.0], [1.545, 0.342], [0.0, 0.0], [-1.862, -1.433], [0.0, 0.0], [-0.66, -1.507], [0.913, -1.017], [-1.982, -0.009]], 'IZX'], 0.21787], ['regression: random expectation 12', [3, [[1.741, 0.945], [0.0, 0.0], [0.705, -0.271], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [-1.277, -0.575], [-0.732, 0.787]], 'ZZX'], 0.12672], ['regression: random expectation 13', [2, [[-0.447, -0.821], [0.189, -0.56], [0.105, 0.959], [0.741, -0.692]], 'XY'], 0.425941], ['control: short X on bell', [2, [[0.707107, 0], [0, 0], [0, 0], [0.707107, 0]], 'X'], 'length-mismatch'], ['control: short Y on three qubits', [3, [[0.5, 0], [0, 0.5], [0, 0], [0.5, 0], [0, 0], [0, 0], [0, 0], [0.5, 0]], 'YZ'], 'length-mismatch'], ['control: short Z on excited high qubit', [2, [[0, 0], [0, 0], [1, 0], [0, 0]], 'Z'], 'length-mismatch'], ['control: short ZX', [3, [[0.6, 0], [0.8, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], 'ZX'], 'length-mismatch']], [['regression: random expectation 14', [3, [[-0.975, 0.241], [-0.742, -0.382], [-0.693, 0.269], [0.083, -0.194], [0.274, 0.631], [0.759, 0.874], [0.919, -0.186], [-0.582, 0.068]], 'XIY'], -0.271617], ['regression: random expectation 15', [2, [[0.599, 0.301], [1.478, -0.323], [-0.934, -1.434], [0.207, -0.762]], 'YZ'], 0.153104], ['regression: random expectation 17', [3, [[1.838, 0.283], [0.891, 0.877], [1.546, 0.945], [-0.961, -0.859], [-1.128, 0.574], [1.09, 1.657], [-0.491, 1.307], [0.567, -1.553]], 'YYI'], -0.226212], ['control: lowercase pauli', [1, [[1, 0], [0, 0]], 'z'], 'bad-pauli'], ['control: unnormalized Z', [1, [[3, 0], [0, 4]], 'Z'], -0.28], ['control: random expectation 0', [1, [[0.071, 0.727], [-1.619, -1.464]], 'I'], 1.0], ['control: random expectation 1', [1, [[0.0, 0.0], [1.97, 0.65]], 'X'], 0.0]], [['regression: random expectation 19', [3, [[-1.467, 1.96], [1.04, 1.59], [0.568, -0.807], [-1.506, -0.905], [-0.169, 1.361], [-1.64, -0.753], [1.853, -1.891], [0.222, 0.162]], 'ZIY'], -0.70921], ['regression: random expectation 20', [2, [[0.0, 0.0], [0.216, -0.049], [0.0, 0.0], [0.005, -0.114]], 'XZ'], -0.214762], ['regression: random expectation 21', [3, [[-0.485, -0.865], [1.47, -0.226], [0.134, 0.654], [-0.754, 0.633], [-0.838, 0.604], [-0.388, 1.641], [1.972, 0.518], [0.312, -1.274]], 'XXZ'], -0.444446], ['control: random expectation 2', [1, [[0.489, 0.112], [-0.446, 0.868]], 'X'], -0.200793], ['control: random expectation 3', [1, [[-0.119, -0.141], [0.0, 0.0]], 'Z'], 1.0], ['control: random expectation 4', [1, [[-0.408, 0.461], [-0.359, 0.326]], 'Y'], 0.105809], ['control: random expectation 6', [2, [[0.423, -0.627], [-0.829, 0.103], [0.962, -0.142], [-0.494, -0.183]], 'XX'], -0.7271]], [['regression: random expectation 24', [3, [[0.86, 0.84], [0.244, 0.466], [-1.864, 1.492], [1.769, 1.866], [-1.943, -0.241], [-0.658, 0.243], [-0.056, 0.182], [1.614, -1.453]], 'YZX'], 0.076289], ['regression: random expectation 26', [2, [[0.234, -0.739], [-0.627, 0.79], [0.0, 0.0], [0.107, -0.508]], 'YI'], 0.247917], ['regression: random expectation 33', [2, [[0.861, -0.593], [0.645, 0.002], [0.346, -0.645], [0.069, 0.909]], 'IZ'], 0.132708], ['control: random expectation 7', [1, [[-1.206, 1.877], [0.69, -0.341]], 'I'], 1.0], ['control: random expectation 8', [1, [[0.52, 0.586], [-0.138, -0.781]], 'I'], 1.0], ['control: random expectation 9', [3, [[0.685, -0.091], [1.56, 1.459], [-1.17, 0.687], [-0.305, 1.609], [-0.876, -1.673], [-0.535, 0.008], [-1.818, 1.331], [1.693, 1.162]], 'IXI'], -0.046053], ['control: random expectation 11', [1, [[-0.422, -1.932], [-1.435, 1.833]], 'Z'], -0.161676]]]
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: ZI on |01>1.01.0Passed
regression: IZ on |01>-1.0-1.0Passed
regression: random expectation 120.126720.12672Passed
control: Y on |+i>1.01.0Passed
control: X on |+>1.01.0Passed
control: short stringlength-mismatchlength-mismatchPassed
control: long stringlength-mismatchlength-mismatchPassed

SHA-256 / 8bf016d4288ea6b30c20bfbb629a95b90dc090ab63dbd3997c23d0d2f60cb503

Verification & scope

A deterministic bounded teaching model with a stipulated toy contract; amplitudes are rounded to fixed decimals for strict JSON output. It is not a production quantum SDK and claims no standards conformance. 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:51:31.176975+00:00.

Case digest / 468e5dea0ed2d65a2f6ddee3d7be8acd6ec7334cab08561287c22b4a5950e07d