{"abstract":"A structured table violates the declared record or column contract.","category":"Delimited text","checks":8,"contract":"Choose comma, tab, or semicolon from precomputed per-record field counts. Ignore blank physical records marked null. A candidate must have >=2 fields on every sampled record and constant width. Score is record count times width; greatest score wins, ties use candidate order. No valid candidate returns null.","evaluation_group":"s3-delimited-text-dialect-vote","failed_approach":"Allowing two distinct widths still accepts a ragged candidate.","family":"s3-delimited-text-dialect-vote-consistency","id":"FA-47741","implementations":{"attempt":{"sha256":"7d1c5e2ec14b8cf33824d9464fda74c900aab896c5f86aff00e80a9c52c3b257","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    best, score = None, -1\n    for name, counts in data:\n        counts = [c for c in counts if c is not None]\n        if not counts: continue\n        if min(counts) < 2: continue\n        if len(set(counts)) > 2: continue\n        candidate_score = len(counts) * counts[0]\n        if candidate_score > score:\n            best, score = name, candidate_score\n    return best\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('stable', solve(_vary([['comma', [2, 2]], ['tab', [1, 1]]])), _vary('comma'))\ncheck('ragged distractor', solve(_vary([['comma', [2, 3]], ['tab', [2, 2]]])), _vary('tab'))\ncheck('blank ignored', solve(_vary([['comma', [None, 2, 2]], ['tab', [1, 1]]])), _vary('comma'))\ncheck('ties', solve(_vary([['comma', [2, 2]], ['tab', [2, 2]]])), _vary('comma'))\ncheck('score', solve(_vary([['comma', [3]], ['tab', [2, 2]]])), _vary('tab'))\ncheck('none', solve(_vary([['comma', [1, 1]], ['tab', []]])), _vary(None))\ncheck('large width', solve(_vary([['@', [4, 4]], ['tab', [2, 2]]])), _vary('@'))\ncheck('singleton row distractor', solve(_vary([['comma', [2, 1]], ['tab', [2, 2]]])), _vary('tab'))\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":"c7ab108dd3a1cdae7200c81af61d9b54d501860602c31cc7af6c23a47942315f","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    best, score = None, -1\n    for name, counts in data:\n        counts = [c for c in counts if c is not None]\n        if not counts: continue\n        if min(counts) < 2: continue\n        if False: continue\n        candidate_score = len(counts) * counts[0]\n        if candidate_score > score:\n            best, score = name, candidate_score\n    return best\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('stable', solve(_vary([['comma', [2, 2]], ['tab', [1, 1]]])), _vary('comma'))\ncheck('ragged distractor', solve(_vary([['comma', [2, 3]], ['tab', [2, 2]]])), _vary('tab'))\ncheck('blank ignored', solve(_vary([['comma', [None, 2, 2]], ['tab', [1, 1]]])), _vary('comma'))\ncheck('ties', solve(_vary([['comma', [2, 2]], ['tab', [2, 2]]])), _vary('comma'))\ncheck('score', solve(_vary([['comma', [3]], ['tab', [2, 2]]])), _vary('tab'))\ncheck('none', solve(_vary([['comma', [1, 1]], ['tab', []]])), _vary(None))\ncheck('large width', solve(_vary([['@', [4, 4]], ['tab', [2, 2]]])), _vary('@'))\ncheck('singleton row distractor', solve(_vary([['comma', [2, 1]], ['tab', [2, 2]]])), _vary('tab'))\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":"80639751816c2aa1c07cc6278a002624f22205ab1a0853c70536a411e2802b0d","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    best, score = None, -1\n    for name, counts in data:\n        counts = [c for c in counts if c is not None]\n        if not counts: continue\n        if min(counts) < 2: continue\n        if len(set(counts)) != 1: continue\n        candidate_score = len(counts) * counts[0]\n        if candidate_score > score:\n            best, score = name, candidate_score\n    return best\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('stable', solve(_vary([['comma', [2, 2]], ['tab', [1, 1]]])), _vary('comma'))\ncheck('ragged distractor', solve(_vary([['comma', [2, 3]], ['tab', [2, 2]]])), _vary('tab'))\ncheck('blank ignored', solve(_vary([['comma', [None, 2, 2]], ['tab', [1, 1]]])), _vary('comma'))\ncheck('ties', solve(_vary([['comma', [2, 2]], ['tab', [2, 2]]])), _vary('comma'))\ncheck('score', solve(_vary([['comma', [3]], ['tab', [2, 2]]])), _vary('tab'))\ncheck('none', solve(_vary([['comma', [1, 1]], ['tab', []]])), _vary(None))\ncheck('large width', solve(_vary([['@', [4, 4]], ['tab', [2, 2]]])), _vary('@'))\ncheck('singleton row distractor', solve(_vary([['comma', [2, 1]], ['tab', [2, 2]]])), _vary('tab'))\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-dialect-vote-consistency","generated_at":"2026-09-29T14:44:44.400877+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 len(set(counts)) != 1: continue","root_cause":"The candidate score is computed without requiring consistent record width.","sha256":"a8bc44254509e3d11de07234faab0f750f1125865faad7284f822ec59d88b869","title":"A ragged delimiter candidate defeats a stable dialect · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.489,"exit_code":1,"observations":[{"actual":"comma","check":"stable","expected":"comma","passed":true},{"actual":"comma","check":"ragged distractor","expected":"tab","passed":false},{"actual":"comma","check":"blank ignored","expected":"comma","passed":true},{"actual":"comma","check":"ties","expected":"comma","passed":true},{"actual":"tab","check":"score","expected":"tab","passed":true},{"actual":null,"check":"none","expected":null,"passed":true},{"actual":"cell","check":"large width","expected":"cell","passed":true},{"actual":"tab","check":"singleton row distractor","expected":"tab","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"stable\", \"actual\": \"comma\", \"expected\": \"comma\", \"passed\": true}, {\"check\": \"ragged distractor\", \"actual\": \"comma\", \"expected\": \"tab\", \"passed\": false}, {\"check\": \"blank ignored\", \"actual\": \"comma\", \"expected\": \"comma\", \"passed\": true}, {\"check\": \"ties\", \"actual\": \"comma\", \"expected\": \"comma\", \"passed\": true}, {\"check\": \"score\", \"actual\": \"tab\", \"expected\": \"tab\", \"passed\": true}, {\"check\": \"none\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"large width\", \"actual\": \"cell\", \"expected\": \"cell\", \"passed\": true}, {\"check\": \"singleton row distractor\", \"actual\": \"tab\", \"expected\": \"tab\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":45.248,"exit_code":1,"observations":[{"actual":"comma","check":"stable","expected":"comma","passed":true},{"actual":"comma","check":"ragged distractor","expected":"tab","passed":false},{"actual":"comma","check":"blank ignored","expected":"comma","passed":true},{"actual":"comma","check":"ties","expected":"comma","passed":true},{"actual":"tab","check":"score","expected":"tab","passed":true},{"actual":null,"check":"none","expected":null,"passed":true},{"actual":"cell","check":"large width","expected":"cell","passed":true},{"actual":"tab","check":"singleton row distractor","expected":"tab","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"stable\", \"actual\": \"comma\", \"expected\": \"comma\", \"passed\": true}, {\"check\": \"ragged distractor\", \"actual\": \"comma\", \"expected\": \"tab\", \"passed\": false}, {\"check\": \"blank ignored\", \"actual\": \"comma\", \"expected\": \"comma\", \"passed\": true}, {\"check\": \"ties\", \"actual\": \"comma\", \"expected\": \"comma\", \"passed\": true}, {\"check\": \"score\", \"actual\": \"tab\", \"expected\": \"tab\", \"passed\": true}, {\"check\": \"none\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"large width\", \"actual\": \"cell\", \"expected\": \"cell\", \"passed\": true}, {\"check\": \"singleton row distractor\", \"actual\": \"tab\", \"expected\": \"tab\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.619,"exit_code":0,"observations":[{"actual":"comma","check":"stable","expected":"comma","passed":true},{"actual":"tab","check":"ragged distractor","expected":"tab","passed":true},{"actual":"comma","check":"blank ignored","expected":"comma","passed":true},{"actual":"comma","check":"ties","expected":"comma","passed":true},{"actual":"tab","check":"score","expected":"tab","passed":true},{"actual":null,"check":"none","expected":null,"passed":true},{"actual":"cell","check":"large width","expected":"cell","passed":true},{"actual":"tab","check":"singleton row distractor","expected":"tab","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"stable\", \"actual\": \"comma\", \"expected\": \"comma\", \"passed\": true}, {\"check\": \"ragged distractor\", \"actual\": \"tab\", \"expected\": \"tab\", \"passed\": true}, {\"check\": \"blank ignored\", \"actual\": \"comma\", \"expected\": \"comma\", \"passed\": true}, {\"check\": \"ties\", \"actual\": \"comma\", \"expected\": \"comma\", \"passed\": true}, {\"check\": \"score\", \"actual\": \"tab\", \"expected\": \"tab\", \"passed\": true}, {\"check\": \"none\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"large width\", \"actual\": \"cell\", \"expected\": \"cell\", \"passed\": true}, {\"check\": \"singleton row distractor\", \"actual\": \"tab\", \"expected\": \"tab\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}