{"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":"Using accepted-row count gives the wrong source location.","family":"s3-delimited-text-row-quarantine-strict-result","id":"FA-47976","implementations":{"attempt":{"sha256":"ead512eee54ccc4f063a94b6c7ebb23512a59f868dc633c27f4f0b13d7f0564a","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':len(rows)}\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"},"broken":{"sha256":"a802a38b51e8d31a738259ad5b9c3ca76c2c91daf4958064949b27bfe17ca1b6","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 {'rows':rows, 'errors':errors}\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"},"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-strict-result","generated_at":"2026-09-29T14:44:46.509475+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: if data['mode'] == 'strict': return {'error':position}","root_cause":"Strict mode exposes accumulated rows as a successful result instead of an error.","sha256":"b6d3b915c11d996cf281479459c2d429c69fe2adb6ca53846f26238dcff786a0","title":"Strict ingestion returns partial success at a width error · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.81,"exit_code":1,"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":1},"check":"strict","expected":{"error":2},"passed":false},{"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":false,"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\": 1}, \"expected\": {\"error\": 2}, \"passed\": false}, {\"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\": false}\n"},"broken":{"elapsed_ms":40.378,"exit_code":1,"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":{"errors":[],"rows":[["cell","a","b"]]},"check":"strict","expected":{"error":2},"passed":false},{"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":false,"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\": {\"rows\": [[\"cell\", \"a\", \"b\"]], \"errors\": []}, \"expected\": {\"error\": 2}, \"passed\": false}, {\"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\": false}\n"},"fixed":{"elapsed_ms":39.518,"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"}