{"abstract":"Zero-duration cues where END equals START are accepted.","category":"Subtitle cue timing","checks":9,"contract":"Parse \"START --> END [settings...]\" (whitespace separated). Timestamps are [hh:]mm:ss.ttt with hours of two or more digits, minutes and seconds exactly two digits below 60, and exactly three fraction digits after a period. END must be after START. Return [start_ms,end_ms,settings joined by single spaces] or None.","contract_signature":"line","evaluation_group":"w2-subtitle-cue-timing-vtt-timing-line","failed_approach":"Special-casing an end of zero still accepts equal non-zero start and end.","family":"w2-subtitle-cue-timing-vtt-timing-line-cue-ordering-check","id":"FA-78181","implementations":{"attempt":{"sha256":"a4ec6581f9e35b30941c982abcbb8ad49208dafbb875b99c2b2ef7e0f61b8716","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport re\nN = 1\nobservations = []\ndef solve(line):\n    parts=line.split()\n    if len(parts)<3 or parts[1]!='-->':\n        return None\n    def ts(x):\n        m=re.fullmatch(r'(?:(\\d{2,}):)?(\\d{2}):(\\d{2})\\.(\\d{3})',x)\n        if not m:\n            return None\n        h,mi,se,f=m.groups()\n        if int(mi)>59 or int(se)>59:\n            return None\n        return int(h or 0)*3600000+int(mi)*60000+int(se)*1000+int(f)\n    a=ts(parts[0]); b=ts(parts[2])\n    if a is None or b is None or b<a or b==0:\n        return None\n    return [a,b,' '.join(parts[3:])]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: cue ordering check', ['00:01.000 --> 00:01.000'], None), ('regression variant: cue ordering check', ['01:00.500 --> 01:00.500'], None), ('partial repair probe: cue ordering check', ['01:09.500 --> 01:09.500'], None), ('partial repair variant: cue ordering check', ['100:59:59.999 --> 100:59:59.999 align:start'], None), ('boundary control', ['00:01.000 --> 00:02.000'], [1000, 2000, '']), ('boundary control', ['100:00:00.000 --> 100:00:01.000 align:start'], [360000000, 360001000, 'align:start']), ('normal control', ['00:59.999 --> 01:00.000 line:0 size:50%'], [59999, 60000, 'line:0 size:50%']), ('normal control', ['59:09.5 --> 00:02.000 align:start'], None), ('normal control', ['100:01:60,500 --> 00:00:60.5 align:start'], None)], [('regression: cue ordering check', ['100:59:09.000 --> 100:59:09.000'], None), ('regression variant: cue ordering check', ['100:59:09.500 --> 100:59:09.500 align:start'], None), ('partial repair probe: cue ordering check', ['00:00:09.000 --> 00:00:09.000'], None), ('partial repair variant: cue ordering check', ['00:59.000 --> 00:59.000 line:0 position:10%'], None), ('boundary control', ['100:00:00.000 --> 100:00:01.000 align:start'], [360000000, 360001000, 'align:start']), ('boundary control', ['00:59.999 --> 01:00.000 line:0 size:50%'], [59999, 60000, 'line:0 size:50%']), ('normal control', ['00:5:00.000 -> 00:5:00.000'], None), ('normal control', ['01:01:09.5 --> 60:09.5 size:50% align:end'], None), ('normal control', ['01:60:59.999 --> 00:00.001 line:0 position:10%'], None)], [('regression: cue ordering check', ['01:09.500 --> 01:09.500'], None), ('regression variant: cue ordering check', ['01:59:00.500 --> 01:59:00.500 size:50% align:end'], None), ('partial repair probe: cue ordering check', ['01:59:59.500 --> 01:59:59.500 size:50% align:end'], None), ('partial repair variant: cue ordering check', ['00:01:00.000 --> 00:01:00.000'], None), ('boundary control', ['00:59.999 --> 01:00.000 line:0 size:50%'], [59999, 60000, 'line:0 size:50%']), ('boundary control', ['00:01.000 --> 00:02.000'], [1000, 2000, '']), ('normal control', ['01:60:00.500 --> 5:60,500 line:0 position:10%'], None), ('normal control', ['100:01:00,500 --> 01:00:00.000 align:start'], None), ('normal control', ['60:59.500 --> 100:00:00.000'], None)], [('regression: cue ordering check', ['00:00:09.000 --> 00:00:09.000'], None), ('regression variant: cue ordering check', ['100:59:00.000 --> 100:59:00.000 size:50% align:end'], None), ('partial repair probe: cue ordering check', ['01:00.500 --> 01:00.500'], None), ('partial repair variant: cue ordering check', ['00:59:00.999 --> 00:59:00.999 size:50% align:end'], None), ('boundary control', ['00:01.000 --> 00:02.000'], [1000, 2000, '']), ('boundary control', ['100:00:00.000 --> 100:00:01.000 align:start'], [360000000, 360001000, 'align:start']), ('normal control', ['60:60.999 --> 00:00.001'], None), ('normal control', ['01:59:59,500 --> 01:59:59,500 size:50% align:end'], None), ('normal control', ['59:60.5 --> 100:00:00.000 line:0 position:10%'], None)], [('regression: cue ordering check', ['01:59:59.500 --> 01:59:59.500 size:50% align:end'], None), ('regression variant: cue ordering check', ['100:59:59.999 --> 100:59:59.999 align:start'], None), ('partial repair probe: cue ordering check', ['100:59:09.500 --> 100:59:09.500 align:start'], None), ('partial repair variant: cue ordering check', ['01:59:59.999 --> 01:59:59.999'], None), ('boundary control', ['100:00:00.000 --> 100:00:01.000 align:start'], [360000000, 360001000, 'align:start']), ('boundary control', ['00:59.999 --> 01:00.000 line:0 size:50%'], [59999, 60000, 'line:0 size:50%']), ('normal control', ['01:5:60.500 --> 00:00.001 size:50% align:end'], None), ('normal control', ['100:00:59.000 --> 00:02.000 size:50% align:end'], None), ('normal control', ['59:59.5 -> 00:5:59.999'], None)]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\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":"d75a2bb861a088ac682e5b1bf9f82df1199ae189c73d88e28d4eb5d660453122","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport re\nN = 1\nobservations = []\ndef solve(line):\n    parts=line.split()\n    if len(parts)<3 or parts[1]!='-->':\n        return None\n    def ts(x):\n        m=re.fullmatch(r'(?:(\\d{2,}):)?(\\d{2}):(\\d{2})\\.(\\d{3})',x)\n        if not m:\n            return None\n        h,mi,se,f=m.groups()\n        if int(mi)>59 or int(se)>59:\n            return None\n        return int(h or 0)*3600000+int(mi)*60000+int(se)*1000+int(f)\n    a=ts(parts[0]); b=ts(parts[2])\n    if a is None or b is None or b<a:\n        return None\n    return [a,b,' '.join(parts[3:])]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: cue ordering check', ['00:01.000 --> 00:01.000'], None), ('regression variant: cue ordering check', ['01:00.500 --> 01:00.500'], None), ('partial repair probe: cue ordering check', ['01:09.500 --> 01:09.500'], None), ('partial repair variant: cue ordering check', ['100:59:59.999 --> 100:59:59.999 align:start'], None), ('boundary control', ['00:01.000 --> 00:02.000'], [1000, 2000, '']), ('boundary control', ['100:00:00.000 --> 100:00:01.000 align:start'], [360000000, 360001000, 'align:start']), ('normal control', ['00:59.999 --> 01:00.000 line:0 size:50%'], [59999, 60000, 'line:0 size:50%']), ('normal control', ['59:09.5 --> 00:02.000 align:start'], None), ('normal control', ['100:01:60,500 --> 00:00:60.5 align:start'], None)], [('regression: cue ordering check', ['100:59:09.000 --> 100:59:09.000'], None), ('regression variant: cue ordering check', ['100:59:09.500 --> 100:59:09.500 align:start'], None), ('partial repair probe: cue ordering check', ['00:00:09.000 --> 00:00:09.000'], None), ('partial repair variant: cue ordering check', ['00:59.000 --> 00:59.000 line:0 position:10%'], None), ('boundary control', ['100:00:00.000 --> 100:00:01.000 align:start'], [360000000, 360001000, 'align:start']), ('boundary control', ['00:59.999 --> 01:00.000 line:0 size:50%'], [59999, 60000, 'line:0 size:50%']), ('normal control', ['00:5:00.000 -> 00:5:00.000'], None), ('normal control', ['01:01:09.5 --> 60:09.5 size:50% align:end'], None), ('normal control', ['01:60:59.999 --> 00:00.001 line:0 position:10%'], None)], [('regression: cue ordering check', ['01:09.500 --> 01:09.500'], None), ('regression variant: cue ordering check', ['01:59:00.500 --> 01:59:00.500 size:50% align:end'], None), ('partial repair probe: cue ordering check', ['01:59:59.500 --> 01:59:59.500 size:50% align:end'], None), ('partial repair variant: cue ordering check', ['00:01:00.000 --> 00:01:00.000'], None), ('boundary control', ['00:59.999 --> 01:00.000 line:0 size:50%'], [59999, 60000, 'line:0 size:50%']), ('boundary control', ['00:01.000 --> 00:02.000'], [1000, 2000, '']), ('normal control', ['01:60:00.500 --> 5:60,500 line:0 position:10%'], None), ('normal control', ['100:01:00,500 --> 01:00:00.000 align:start'], None), ('normal control', ['60:59.500 --> 100:00:00.000'], None)], [('regression: cue ordering check', ['00:00:09.000 --> 00:00:09.000'], None), ('regression variant: cue ordering check', ['100:59:00.000 --> 100:59:00.000 size:50% align:end'], None), ('partial repair probe: cue ordering check', ['01:00.500 --> 01:00.500'], None), ('partial repair variant: cue ordering check', ['00:59:00.999 --> 00:59:00.999 size:50% align:end'], None), ('boundary control', ['00:01.000 --> 00:02.000'], [1000, 2000, '']), ('boundary control', ['100:00:00.000 --> 100:00:01.000 align:start'], [360000000, 360001000, 'align:start']), ('normal control', ['60:60.999 --> 00:00.001'], None), ('normal control', ['01:59:59,500 --> 01:59:59,500 size:50% align:end'], None), ('normal control', ['59:60.5 --> 100:00:00.000 line:0 position:10%'], None)], [('regression: cue ordering check', ['01:59:59.500 --> 01:59:59.500 size:50% align:end'], None), ('regression variant: cue ordering check', ['100:59:59.999 --> 100:59:59.999 align:start'], None), ('partial repair probe: cue ordering check', ['100:59:09.500 --> 100:59:09.500 align:start'], None), ('partial repair variant: cue ordering check', ['01:59:59.999 --> 01:59:59.999'], None), ('boundary control', ['100:00:00.000 --> 100:00:01.000 align:start'], [360000000, 360001000, 'align:start']), ('boundary control', ['00:59.999 --> 01:00.000 line:0 size:50%'], [59999, 60000, 'line:0 size:50%']), ('normal control', ['01:5:60.500 --> 00:00.001 size:50% align:end'], None), ('normal control', ['100:00:59.000 --> 00:02.000 size:50% align:end'], None), ('normal control', ['59:59.5 -> 00:5:59.999'], None)]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\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":"A deterministic bounded teaching model with a stipulated toy contract; it does not claim conformance to any subtitle standard. 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":"w2-subtitle-cue-timing-vtt-timing-line-cue-ordering-check","generated_at":"2026-09-29T14:49:32.746351+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Subtitle timing defects shift, hide or overlap captions that viewers depend on for comprehension and accessibility.","root_cause":"The order check only rejects ends strictly before the start.","sha256":"662499017a83b7cc7888de0dbf257861e7a46c92416002a5d771bf5084ce203a","title":"WebVTT cue timing line parsing: cue ordering check · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":39.983,"exit_code":1,"observations":[{"actual":[1000,1000,""],"check":"regression: cue ordering check","expected":null,"passed":false},{"actual":[60500,60500,""],"check":"regression variant: cue ordering check","expected":null,"passed":false},{"actual":[69500,69500,""],"check":"partial repair probe: cue ordering check","expected":null,"passed":false},{"actual":[363599999,363599999,"align:start"],"check":"partial repair variant: cue ordering check","expected":null,"passed":false},{"actual":[1000,2000,""],"check":"boundary control","expected":[1000,2000,""],"passed":true},{"actual":[360000000,360001000,"align:start"],"check":"boundary control","expected":[360000000,360001000,"align:start"],"passed":true},{"actual":[59999,60000,"line:0 size:50%"],"check":"normal control","expected":[59999,60000,"line:0 size:50%"],"passed":true},{"actual":null,"check":"normal control","expected":null,"passed":true},{"actual":null,"check":"normal control","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: cue ordering check\", \"actual\": [1000, 1000, \"\"], \"expected\": null, \"passed\": false}, {\"check\": \"regression variant: cue ordering check\", \"actual\": [60500, 60500, \"\"], \"expected\": null, \"passed\": false}, {\"check\": \"partial repair probe: cue ordering check\", \"actual\": [69500, 69500, \"\"], \"expected\": null, \"passed\": false}, {\"check\": \"partial repair variant: cue ordering check\", \"actual\": [363599999, 363599999, \"align:start\"], \"expected\": null, \"passed\": false}, {\"check\": \"boundary control\", \"actual\": [1000, 2000, \"\"], \"expected\": [1000, 2000, \"\"], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [360000000, 360001000, \"align:start\"], \"expected\": [360000000, 360001000, \"align:start\"], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [59999, 60000, \"line:0 size:50%\"], \"expected\": [59999, 60000, \"line:0 size:50%\"], \"passed\": true}, {\"check\": \"normal control\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.581,"exit_code":1,"observations":[{"actual":[1000,1000,""],"check":"regression: cue ordering check","expected":null,"passed":false},{"actual":[60500,60500,""],"check":"regression variant: cue ordering check","expected":null,"passed":false},{"actual":[69500,69500,""],"check":"partial repair probe: cue ordering check","expected":null,"passed":false},{"actual":[363599999,363599999,"align:start"],"check":"partial repair variant: cue ordering check","expected":null,"passed":false},{"actual":[1000,2000,""],"check":"boundary control","expected":[1000,2000,""],"passed":true},{"actual":[360000000,360001000,"align:start"],"check":"boundary control","expected":[360000000,360001000,"align:start"],"passed":true},{"actual":[59999,60000,"line:0 size:50%"],"check":"normal control","expected":[59999,60000,"line:0 size:50%"],"passed":true},{"actual":null,"check":"normal control","expected":null,"passed":true},{"actual":null,"check":"normal control","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: cue ordering check\", \"actual\": [1000, 1000, \"\"], \"expected\": null, \"passed\": false}, {\"check\": \"regression variant: cue ordering check\", \"actual\": [60500, 60500, \"\"], \"expected\": null, \"passed\": false}, {\"check\": \"partial repair probe: cue ordering check\", \"actual\": [69500, 69500, \"\"], \"expected\": null, \"passed\": false}, {\"check\": \"partial repair variant: cue ordering check\", \"actual\": [363599999, 363599999, \"align:start\"], \"expected\": null, \"passed\": false}, {\"check\": \"boundary control\", \"actual\": [1000, 2000, \"\"], \"expected\": [1000, 2000, \"\"], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [360000000, 360001000, \"align:start\"], \"expected\": [360000000, 360001000, \"align:start\"], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [59999, 60000, \"line:0 size:50%\"], \"expected\": [59999, 60000, \"line:0 size:50%\"], \"passed\": true}, {\"check\": \"normal control\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}