FAILURE MAP
← Case archive

FA-12341 / Manufacturing workflow integrity / Open access

Repeated route operations are collapsed into one completion · case 01

Repeated route operations are collapsed into one completion.

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

ROOT CAUSE

Membership checks erase the multiplicity and ordering of repeated wash or inspection steps.

VERIFIED REPAIR

Accept only an exact completed prefix of the ordered route and return its next occurrence.

Unsuccessful approach: Counting occurrences still accepts operations performed out of order.

Case contract

For ordered operation-name lists, return the next operation, done for a full route, or invalid unless completed is a prefix.

Why this case matters

A deterministic manufacturing record model isolates this workflow defect before equipment or enterprise integration.

1 / The failure

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

N = 1
observations = []
def solve(route, completed):
    return next((x for x in route if x not in completed), 'done')
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
r = ['wash'] * N + ['coat', 'wash']
check('repeat remains', solve(r, ['wash'] * N), 'coat')
check('post-coating wash remains', solve(r, ['wash'] * N + ['coat']), 'wash')
check('out of sequence', solve(r, ['coat']), 'invalid')
check('complete', solve(r, r), 'done')
check('not started', solve(r, []), 'wash')
check('empty route', solve([], []), 'done')
check('extra operation', solve(r, r + ['wash']), 'invalid')
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
repeat remainscoatcoatPassed
post-coating wash remainsdonewashFailed
out of sequencewashinvalidFailed
completedonedonePassed
not startedwashwashPassed
empty routedonedonePassed
extra operationdoneinvalidFailed

SHA-256 / aa1434e47e017f0d998805119f67ae7de4bf8b9b9563cbf5f1de3bc2df085c47

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(route, completed):
    remaining = list(route)
    for x in completed:
        if x not in remaining: return 'invalid'
        remaining.remove(x)
    return remaining[0] if remaining else 'done'
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
r = ['wash'] * N + ['coat', 'wash']
check('repeat remains', solve(r, ['wash'] * N), 'coat')
check('post-coating wash remains', solve(r, ['wash'] * N + ['coat']), 'wash')
check('out of sequence', solve(r, ['coat']), 'invalid')
check('complete', solve(r, r), 'done')
check('not started', solve(r, []), 'wash')
check('empty route', solve([], []), 'done')
check('extra operation', solve(r, r + ['wash']), 'invalid')
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
repeat remainscoatcoatPassed
post-coating wash remainswashwashPassed
out of sequencewashinvalidFailed
completedonedonePassed
not startedwashwashPassed
empty routedonedonePassed
extra operationinvalidinvalidPassed

SHA-256 / 804fa13c7167eaf31d22fae3e8e790749402156826f9692571011f73f99a8883

3 / The verified repair

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

N = 1
observations = []
def solve(route, completed):
    if completed != route[:len(completed)]: return 'invalid'
    return route[len(completed)] if len(completed) < len(route) else 'done'
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
r = ['wash'] * N + ['coat', 'wash']
check('repeat remains', solve(r, ['wash'] * N), 'coat')
check('post-coating wash remains', solve(r, ['wash'] * N + ['coat']), 'wash')
check('out of sequence', solve(r, ['coat']), 'invalid')
check('complete', solve(r, r), 'done')
check('not started', solve(r, []), 'wash')
check('empty route', solve([], []), 'done')
check('extra operation', solve(r, r + ['wash']), 'invalid')
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
repeat remainscoatcoatPassed
post-coating wash remainswashwashPassed
out of sequenceinvalidinvalidPassed
completedonedonePassed
not startedwashwashPassed
empty routedonedonePassed
extra operationinvalidinvalidPassed

SHA-256 / 9f2e87c93723fe7d339db4290a57a995fd5571d6602b2f4c33d9d0a682c8cc55

Verification & scope

Offline policy model only; no physical equipment, regulatory certification, or concurrent transaction claims. 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:38:56.052202+00:00.

Case digest / d2acb3c44d5f751e142be8514b27e0e859afe3caaab652ca490d99fa306adb79