{"abstract":"A structured table violates the declared record or column contract.","category":"Delimited text","checks":7,"contract":"Import three-column comma rows with exact modes strict, skip, or collect. Width failures are 1-based source record positions. Strict returns {error:position}; skip omits bad rows; collect returns valid rows and errors containing position and original cells. Header is supplied separately and not counted.","evaluation_group":"s3-delimited-text-row-quarantine","failed_approach":"Returning the partial report still loses subsequent valid and invalid records.","family":"s3-delimited-text-row-quarantine-collect-continue","id":"FA-47971","implementations":{"attempt":{"sha256":"545f9691dc8511a42e23007147114cb8733cada1f40b8f8bde31bcd209442fe7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\ndef _vary(value):\n    if value == '@END': return 3 + 4*N\n    if isinstance(value, str): return value.replace('@', 'cell' * N)\n    if isinstance(value, list): return [_vary(x) for x in value]\n    if isinstance(value, dict): return {_vary(k): _vary(v) for k,v in value.items()}\n    return value\nN = 1\nobservations = []\ndef solve(data):\n    rows, errors = [], []\n    for position,line in enumerate(data['lines'], 1):\n        cells = line.split(',')\n        if len(cells) != 3:\n            if data['mode'] == 'strict': return {'error':position}\n            if data['mode'] == 'collect': errors.append([position, cells])\n            return {'rows':rows, 'errors':errors}\n        rows.append(cells)\n    return {'rows':rows, 'errors':errors}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('collect', solve(_vary({'mode': 'collect', 'lines': ['@,a,b', 'x,y', 'c,d,e', 'z']})), _vary({'rows': [['@', 'a', 'b'], ['c', 'd', 'e']], 'errors': [[2, ['x', 'y']], [4, ['z']]]}))\ncheck('strict', solve(_vary({'mode': 'strict', 'lines': ['@,a,b', 'x,y', 'c,d,e']})), _vary({'error': 2}))\ncheck('skip', solve(_vary({'mode': 'skip', 'lines': ['x,y', '@,a,b', 'z']})), _vary({'rows': [['@', 'a', 'b']], 'errors': []}))\ncheck('normal', solve(_vary({'mode': 'strict', 'lines': ['@,a,b']})), _vary({'rows': [['@', 'a', 'b']], 'errors': []}))\ncheck('empty', solve(_vary({'mode': 'collect', 'lines': []})), _vary({'rows': [], 'errors': []}))\ncheck('empty cells', solve(_vary({'mode': 'collect', 'lines': [',,']})), _vary({'rows': [['', '', '']], 'errors': []}))\ncheck('wide', solve(_vary({'mode': 'collect', 'lines': ['a,b,c,d']})), _vary({'rows': [], 'errors': [[1, ['a', 'b', 'c', 'd']]]}))\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"6e626511951780f3f193b3b88a2beb19385db223660700510cf64633189f673b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\ndef _vary(value):\n    if value == '@END': return 3 + 4*N\n    if isinstance(value, str): return value.replace('@', 'cell' * N)\n    if isinstance(value, list): return [_vary(x) for x in value]\n    if isinstance(value, dict): return {_vary(k): _vary(v) for k,v in value.items()}\n    return value\nN = 1\nobservations = []\ndef solve(data):\n    rows, errors = [], []\n    for position,line in enumerate(data['lines'], 1):\n        cells = line.split(',')\n        if len(cells) != 3:\n            if data['mode'] == 'strict': return {'error':position}\n            if data['mode'] == 'collect': errors.append([position, cells])\n            break\n        rows.append(cells)\n    return {'rows':rows, 'errors':errors}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('collect', solve(_vary({'mode': 'collect', 'lines': ['@,a,b', 'x,y', 'c,d,e', 'z']})), _vary({'rows': [['@', 'a', 'b'], ['c', 'd', 'e']], 'errors': [[2, ['x', 'y']], [4, ['z']]]}))\ncheck('strict', solve(_vary({'mode': 'strict', 'lines': ['@,a,b', 'x,y', 'c,d,e']})), _vary({'error': 2}))\ncheck('skip', solve(_vary({'mode': 'skip', 'lines': ['x,y', '@,a,b', 'z']})), _vary({'rows': [['@', 'a', 'b']], 'errors': []}))\ncheck('normal', solve(_vary({'mode': 'strict', 'lines': ['@,a,b']})), _vary({'rows': [['@', 'a', 'b']], 'errors': []}))\ncheck('empty', solve(_vary({'mode': 'collect', 'lines': []})), _vary({'rows': [], 'errors': []}))\ncheck('empty cells', solve(_vary({'mode': 'collect', 'lines': [',,']})), _vary({'rows': [['', '', '']], 'errors': []}))\ncheck('wide', solve(_vary({'mode': 'collect', 'lines': ['a,b,c,d']})), _vary({'rows': [], 'errors': [[1, ['a', 'b', 'c', 'd']]]}))\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"7174d4ccd4148028e0bac6342bad2cdc7ca8bbc1aff2fedd176eeeaa8473631f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\ndef _vary(value):\n    if value == '@END': return 3 + 4*N\n    if isinstance(value, str): return value.replace('@', 'cell' * N)\n    if isinstance(value, list): return [_vary(x) for x in value]\n    if isinstance(value, dict): return {_vary(k): _vary(v) for k,v in value.items()}\n    return value\nN = 1\nobservations = []\ndef solve(data):\n    rows, errors = [], []\n    for position,line in enumerate(data['lines'], 1):\n        cells = line.split(',')\n        if len(cells) != 3:\n            if data['mode'] == 'strict': return {'error':position}\n            if data['mode'] == 'collect': errors.append([position, cells])\n            continue\n        rows.append(cells)\n    return {'rows':rows, 'errors':errors}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('collect', solve(_vary({'mode': 'collect', 'lines': ['@,a,b', 'x,y', 'c,d,e', 'z']})), _vary({'rows': [['@', 'a', 'b'], ['c', 'd', 'e']], 'errors': [[2, ['x', 'y']], [4, ['z']]]}))\ncheck('strict', solve(_vary({'mode': 'strict', 'lines': ['@,a,b', 'x,y', 'c,d,e']})), _vary({'error': 2}))\ncheck('skip', solve(_vary({'mode': 'skip', 'lines': ['x,y', '@,a,b', 'z']})), _vary({'rows': [['@', 'a', 'b']], 'errors': []}))\ncheck('normal', solve(_vary({'mode': 'strict', 'lines': ['@,a,b']})), _vary({'rows': [['@', 'a', 'b']], 'errors': []}))\ncheck('empty', solve(_vary({'mode': 'collect', 'lines': []})), _vary({'rows': [], 'errors': []}))\ncheck('empty cells', solve(_vary({'mode': 'collect', 'lines': [',,']})), _vary({'rows': [['', '', '']], 'errors': []}))\ncheck('wide', solve(_vary({'mode': 'collect', 'lines': ['a,b,c,d']})), _vary({'rows': [], 'errors': [[1, ['a', 'b', 'c', 'd']]]}))\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"Deterministic bounded in-memory model. No claim of complete CSV or external format 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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-delimited-text-row-quarantine-collect-continue","generated_at":"2026-09-29T14:44:46.423492+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Delimited interchange needs explicit framing, schema and field semantics at ingestion and emission boundaries.","repair":"Preserve the named invariant at the faulty decision: continue\n    rows.append(cells)","root_cause":"A recoverable width error terminates the import loop.","sha256":"b457222346c7fadc3de290df4f0e7c0c8abfc036606b52dd2d3a188933bd3290","title":"Quarantine stops at the first malformed record · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.152,"exit_code":1,"observations":[{"actual":{"errors":[[2,["x","y"]]],"rows":[["cell","a","b"]]},"check":"collect","expected":{"errors":[[2,["x","y"]],[4,["z"]]],"rows":[["cell","a","b"],["c","d","e"]]},"passed":false},{"actual":{"error":2},"check":"strict","expected":{"error":2},"passed":true},{"actual":{"errors":[],"rows":[]},"check":"skip","expected":{"errors":[],"rows":[["cell","a","b"]]},"passed":false},{"actual":{"errors":[],"rows":[["cell","a","b"]]},"check":"normal","expected":{"errors":[],"rows":[["cell","a","b"]]},"passed":true},{"actual":{"errors":[],"rows":[]},"check":"empty","expected":{"errors":[],"rows":[]},"passed":true},{"actual":{"errors":[],"rows":[["","",""]]},"check":"empty cells","expected":{"errors":[],"rows":[["","",""]]},"passed":true},{"actual":{"errors":[[1,["a","b","c","d"]]],"rows":[]},"check":"wide","expected":{"errors":[[1,["a","b","c","d"]]],"rows":[]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"collect\", \"actual\": {\"rows\": [[\"cell\", \"a\", \"b\"]], \"errors\": [[2, [\"x\", \"y\"]]]}, \"expected\": {\"rows\": [[\"cell\", \"a\", \"b\"], [\"c\", \"d\", \"e\"]], \"errors\": [[2, [\"x\", \"y\"]], [4, [\"z\"]]]}, \"passed\": false}, {\"check\": \"strict\", \"actual\": {\"error\": 2}, \"expected\": {\"error\": 2}, \"passed\": true}, {\"check\": \"skip\", \"actual\": {\"rows\": [], \"errors\": []}, \"expected\": {\"rows\": [[\"cell\", \"a\", \"b\"]], \"errors\": []}, \"passed\": false}, {\"check\": \"normal\", \"actual\": {\"rows\": [[\"cell\", \"a\", \"b\"]], \"errors\": []}, \"expected\": {\"rows\": [[\"cell\", \"a\", \"b\"]], \"errors\": []}, \"passed\": true}, {\"check\": \"empty\", \"actual\": {\"rows\": [], \"errors\": []}, \"expected\": {\"rows\": [], \"errors\": []}, \"passed\": true}, {\"check\": \"empty cells\", \"actual\": {\"rows\": [[\"\", \"\", \"\"]], \"errors\": []}, \"expected\": {\"rows\": [[\"\", \"\", \"\"]], \"errors\": []}, \"passed\": true}, {\"check\": \"wide\", \"actual\": {\"rows\": [], \"errors\": [[1, [\"a\", \"b\", \"c\", \"d\"]]]}, \"expected\": {\"rows\": [], \"errors\": [[1, [\"a\", \"b\", \"c\", \"d\"]]]}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.162,"exit_code":1,"observations":[{"actual":{"errors":[[2,["x","y"]]],"rows":[["cell","a","b"]]},"check":"collect","expected":{"errors":[[2,["x","y"]],[4,["z"]]],"rows":[["cell","a","b"],["c","d","e"]]},"passed":false},{"actual":{"error":2},"check":"strict","expected":{"error":2},"passed":true},{"actual":{"errors":[],"rows":[]},"check":"skip","expected":{"errors":[],"rows":[["cell","a","b"]]},"passed":false},{"actual":{"errors":[],"rows":[["cell","a","b"]]},"check":"normal","expected":{"errors":[],"rows":[["cell","a","b"]]},"passed":true},{"actual":{"errors":[],"rows":[]},"check":"empty","expected":{"errors":[],"rows":[]},"passed":true},{"actual":{"errors":[],"rows":[["","",""]]},"check":"empty cells","expected":{"errors":[],"rows":[["","",""]]},"passed":true},{"actual":{"errors":[[1,["a","b","c","d"]]],"rows":[]},"check":"wide","expected":{"errors":[[1,["a","b","c","d"]]],"rows":[]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"collect\", \"actual\": {\"rows\": [[\"cell\", \"a\", \"b\"]], \"errors\": [[2, [\"x\", \"y\"]]]}, \"expected\": {\"rows\": [[\"cell\", \"a\", \"b\"], [\"c\", \"d\", \"e\"]], \"errors\": [[2, [\"x\", \"y\"]], [4, [\"z\"]]]}, \"passed\": false}, {\"check\": \"strict\", \"actual\": {\"error\": 2}, \"expected\": {\"error\": 2}, \"passed\": true}, {\"check\": \"skip\", \"actual\": {\"rows\": [], \"errors\": []}, \"expected\": {\"rows\": [[\"cell\", \"a\", \"b\"]], \"errors\": []}, \"passed\": false}, {\"check\": \"normal\", \"actual\": {\"rows\": [[\"cell\", \"a\", \"b\"]], \"errors\": []}, \"expected\": {\"rows\": [[\"cell\", \"a\", \"b\"]], \"errors\": []}, \"passed\": true}, {\"check\": \"empty\", \"actual\": {\"rows\": [], \"errors\": []}, \"expected\": {\"rows\": [], \"errors\": []}, \"passed\": true}, {\"check\": \"empty cells\", \"actual\": {\"rows\": [[\"\", \"\", \"\"]], \"errors\": []}, \"expected\": {\"rows\": [[\"\", \"\", \"\"]], \"errors\": []}, \"passed\": true}, {\"check\": \"wide\", \"actual\": {\"rows\": [], \"errors\": [[1, [\"a\", \"b\", \"c\", \"d\"]]]}, \"expected\": {\"rows\": [], \"errors\": [[1, [\"a\", \"b\", \"c\", \"d\"]]]}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.07,"exit_code":0,"observations":[{"actual":{"errors":[[2,["x","y"]],[4,["z"]]],"rows":[["cell","a","b"],["c","d","e"]]},"check":"collect","expected":{"errors":[[2,["x","y"]],[4,["z"]]],"rows":[["cell","a","b"],["c","d","e"]]},"passed":true},{"actual":{"error":2},"check":"strict","expected":{"error":2},"passed":true},{"actual":{"errors":[],"rows":[["cell","a","b"]]},"check":"skip","expected":{"errors":[],"rows":[["cell","a","b"]]},"passed":true},{"actual":{"errors":[],"rows":[["cell","a","b"]]},"check":"normal","expected":{"errors":[],"rows":[["cell","a","b"]]},"passed":true},{"actual":{"errors":[],"rows":[]},"check":"empty","expected":{"errors":[],"rows":[]},"passed":true},{"actual":{"errors":[],"rows":[["","",""]]},"check":"empty cells","expected":{"errors":[],"rows":[["","",""]]},"passed":true},{"actual":{"errors":[[1,["a","b","c","d"]]],"rows":[]},"check":"wide","expected":{"errors":[[1,["a","b","c","d"]]],"rows":[]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"collect\", \"actual\": {\"rows\": [[\"cell\", \"a\", \"b\"], [\"c\", \"d\", \"e\"]], \"errors\": [[2, [\"x\", \"y\"]], [4, [\"z\"]]]}, \"expected\": {\"rows\": [[\"cell\", \"a\", \"b\"], [\"c\", \"d\", \"e\"]], \"errors\": [[2, [\"x\", \"y\"]], [4, [\"z\"]]]}, \"passed\": true}, {\"check\": \"strict\", \"actual\": {\"error\": 2}, \"expected\": {\"error\": 2}, \"passed\": true}, {\"check\": \"skip\", \"actual\": {\"rows\": [[\"cell\", \"a\", \"b\"]], \"errors\": []}, \"expected\": {\"rows\": [[\"cell\", \"a\", \"b\"]], \"errors\": []}, \"passed\": true}, {\"check\": \"normal\", \"actual\": {\"rows\": [[\"cell\", \"a\", \"b\"]], \"errors\": []}, \"expected\": {\"rows\": [[\"cell\", \"a\", \"b\"]], \"errors\": []}, \"passed\": true}, {\"check\": \"empty\", \"actual\": {\"rows\": [], \"errors\": []}, \"expected\": {\"rows\": [], \"errors\": []}, \"passed\": true}, {\"check\": \"empty cells\", \"actual\": {\"rows\": [[\"\", \"\", \"\"]], \"errors\": []}, \"expected\": {\"rows\": [[\"\", \"\", \"\"]], \"errors\": []}, \"passed\": true}, {\"check\": \"wide\", \"actual\": {\"rows\": [], \"errors\": [[1, [\"a\", \"b\", \"c\", \"d\"]]]}, \"expected\": {\"rows\": [], \"errors\": [[1, [\"a\", \"b\", \"c\", \"d\"]]]}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}