{"abstract":"Typing 100 jumps to 10:00:00:00 instead of one second.","category":"Broadcast timecode arithmetic","checks":9,"contract":"Normalize typed timecode. Separators \":\", \";\" and \".\" are equivalent. With separators, up to four numeric fields fill from the right (frames last). Without separators, up to eight digits are right-aligned into HH MM SS FF pairs. Field overflow carries through the total frame count, which wraps at 24 hours. Invalid entry returns None.","contract_signature":"s, fps","evaluation_group":"w2-broadcast-timecode-arithmetic-entry-normalization","failed_approach":"Taking the first eight characters of the zero-padded string discards the typed digits.","family":"w2-broadcast-timecode-arithmetic-entry-normalization-digit-right-alignment","id":"FA-78771","implementations":{"attempt":{"sha256":"31eea325f1e26fc298fc83d292a9756cdcc38c9a5928c5e715a99b9ca3e5f51a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s, fps):\n    s=s.replace(';',':').replace('.',':')\n    if ':' in s:\n        parts=s.split(':')\n        if len(parts)>4 or not all(p.isdigit() for p in parts):\n            return None\n        vals=[0]*(4-len(parts))+[int(p) for p in parts]\n    else:\n        if not s.isdigit() or len(s)>8:\n            return None\n        d=('0'*8+s)[:8]\n        vals=[int(d[i:i+2]) for i in range(0,8,2)]\n    h,m,sec,f=vals\n    n=((h*60+m)*60+sec)*fps+f\n    n%=86400*fps\n    return '%02d:%02d:%02d:%02d'%(n//(3600*fps),n//(60*fps)%60,n//fps%60,n%fps)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: digit right alignment', ['100', 25], '00:00:01:00'), ('regression variant: digit right alignment', ['5959', 24], '00:01:01:11'), ('partial repair probe: digit right alignment', ['23595924', 25], '23:59:59:24'), ('partial repair variant: digit right alignment', ['100', 24], '00:00:01:00'), ('boundary control', ['1:2', 25], '00:00:01:02'), ('boundary control', ['1.2.3.4', 25], '01:02:03:04'), ('normal control', ['59.10', 24], '00:00:59:10'), ('normal control', ['59.99', 24], '00:01:03:03'), ('normal control', ['59:23', 24], '00:00:59:23')], [('regression: digit right alignment', ['99', 25], '00:00:03:24'), ('regression variant: digit right alignment', ['10', 24], '00:00:00:10'), ('partial repair probe: digit right alignment', ['99', 24], '00:00:04:03'), ('partial repair variant: digit right alignment', ['10000', 25], '00:01:00:00'), ('boundary control', ['1.2.3.4', 25], '01:02:03:04'), ('boundary control', ['1:2', 25], '00:00:01:02'), ('normal control', ['99.24.0', 24], '01:39:24:00'), ('normal control', ['23:30:30', 24], '00:23:31:06'), ('normal control', ['59.2', 24], '00:00:59:02')], [('regression: digit right alignment', ['99', 24], '00:00:04:03'), ('regression variant: digit right alignment', ['100', 24], '00:00:01:00'), ('partial repair probe: digit right alignment', ['100', 30], '00:00:01:00'), ('partial repair variant: digit right alignment', ['5959', 30], '00:01:00:29'), ('boundary control', ['1:2', 25], '00:00:01:02'), ('boundary control', ['1.2.3.4', 25], '01:02:03:04'), ('normal control', ['1;1;1;99;2', 30], None), ('normal control', ['2;2;0;1;99', 30], None), ('normal control', ['23;1;1', 25], '00:23:01:01')], [('regression: digit right alignment', ['100', 30], '00:00:01:00'), ('regression variant: digit right alignment', ['10000', 25], '00:01:00:00'), ('partial repair probe: digit right alignment', ['10000', 24], '00:01:00:00'), ('partial repair variant: digit right alignment', ['30', 24], '00:00:01:06'), ('boundary control', ['1.2.3.4', 25], '01:02:03:04'), ('boundary control', ['1:2', 25], '00:00:01:02'), ('normal control', ['x1', 24], None), ('normal control', ['23.1', 30], '00:00:23:01'), ('normal control', ['23;1;99', 30], '00:23:04:09')], [('regression: digit right alignment', ['10000', 24], '00:01:00:00'), ('regression variant: digit right alignment', ['5959', 30], '00:01:00:29'), ('partial repair probe: digit right alignment', ['5959', 24], '00:01:01:11'), ('partial repair variant: digit right alignment', ['30', 30], '00:00:01:00'), ('boundary control', ['1:2', 25], '00:00:01:02'), ('boundary control', ['1.2.3.4', 25], '01:02:03:04'), ('normal control', ['59.99.23.24', 24], '12:39:24:00'), ('normal control', ['61:10:61', 24], '01:01:12:13'), ('normal control', ['30;24;61;30', 24], '06:25:02:06')]]\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":"c186a5947ad562a1d11a57118cce02c11527d05e8e10936b936a31f5c9f15238","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s, fps):\n    s=s.replace(';',':').replace('.',':')\n    if ':' in s:\n        parts=s.split(':')\n        if len(parts)>4 or not all(p.isdigit() for p in parts):\n            return None\n        vals=[0]*(4-len(parts))+[int(p) for p in parts]\n    else:\n        if not s.isdigit() or len(s)>8:\n            return None\n        d=s.ljust(8,'0')\n        vals=[int(d[i:i+2]) for i in range(0,8,2)]\n    h,m,sec,f=vals\n    n=((h*60+m)*60+sec)*fps+f\n    n%=86400*fps\n    return '%02d:%02d:%02d:%02d'%(n//(3600*fps),n//(60*fps)%60,n//fps%60,n%fps)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: digit right alignment', ['100', 25], '00:00:01:00'), ('regression variant: digit right alignment', ['5959', 24], '00:01:01:11'), ('partial repair probe: digit right alignment', ['23595924', 25], '23:59:59:24'), ('partial repair variant: digit right alignment', ['100', 24], '00:00:01:00'), ('boundary control', ['1:2', 25], '00:00:01:02'), ('boundary control', ['1.2.3.4', 25], '01:02:03:04'), ('normal control', ['59.10', 24], '00:00:59:10'), ('normal control', ['59.99', 24], '00:01:03:03'), ('normal control', ['59:23', 24], '00:00:59:23')], [('regression: digit right alignment', ['99', 25], '00:00:03:24'), ('regression variant: digit right alignment', ['10', 24], '00:00:00:10'), ('partial repair probe: digit right alignment', ['99', 24], '00:00:04:03'), ('partial repair variant: digit right alignment', ['10000', 25], '00:01:00:00'), ('boundary control', ['1.2.3.4', 25], '01:02:03:04'), ('boundary control', ['1:2', 25], '00:00:01:02'), ('normal control', ['99.24.0', 24], '01:39:24:00'), ('normal control', ['23:30:30', 24], '00:23:31:06'), ('normal control', ['59.2', 24], '00:00:59:02')], [('regression: digit right alignment', ['99', 24], '00:00:04:03'), ('regression variant: digit right alignment', ['100', 24], '00:00:01:00'), ('partial repair probe: digit right alignment', ['100', 30], '00:00:01:00'), ('partial repair variant: digit right alignment', ['5959', 30], '00:01:00:29'), ('boundary control', ['1:2', 25], '00:00:01:02'), ('boundary control', ['1.2.3.4', 25], '01:02:03:04'), ('normal control', ['1;1;1;99;2', 30], None), ('normal control', ['2;2;0;1;99', 30], None), ('normal control', ['23;1;1', 25], '00:23:01:01')], [('regression: digit right alignment', ['100', 30], '00:00:01:00'), ('regression variant: digit right alignment', ['10000', 25], '00:01:00:00'), ('partial repair probe: digit right alignment', ['10000', 24], '00:01:00:00'), ('partial repair variant: digit right alignment', ['30', 24], '00:00:01:06'), ('boundary control', ['1.2.3.4', 25], '01:02:03:04'), ('boundary control', ['1:2', 25], '00:00:01:02'), ('normal control', ['x1', 24], None), ('normal control', ['23.1', 30], '00:00:23:01'), ('normal control', ['23;1;99', 30], '00:23:04:09')], [('regression: digit right alignment', ['10000', 24], '00:01:00:00'), ('regression variant: digit right alignment', ['5959', 30], '00:01:00:29'), ('partial repair probe: digit right alignment', ['5959', 24], '00:01:01:11'), ('partial repair variant: digit right alignment', ['30', 30], '00:00:01:00'), ('boundary control', ['1:2', 25], '00:00:01:02'), ('boundary control', ['1.2.3.4', 25], '01:02:03:04'), ('normal control', ['59.99.23.24', 24], '12:39:24:00'), ('normal control', ['61:10:61', 24], '01:01:12:13'), ('normal control', ['30;24;61;30', 24], '06:25:02:06')]]\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 SMPTE or any broadcast 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-broadcast-timecode-arithmetic-entry-normalization-digit-right-alignment","generated_at":"2026-09-29T14:49:38.562558+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Timecode arithmetic errors misplace edits, commercial breaks and captions against the broadcast clock.","root_cause":"Digit entry is padded on the right, left-aligning the digits.","sha256":"b1e2621d4d21ffff0dd09e5aca4944472a7d4537a44b7eca1716dfc739e8f17c","title":"Operator timecode entry normalization: digit right alignment · 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":41.661,"exit_code":1,"observations":[{"actual":"00:00:00:00","check":"regression: digit right alignment","expected":"00:00:01:00","passed":false},{"actual":"00:00:00:00","check":"regression variant: digit right alignment","expected":"00:01:01:11","passed":false},{"actual":"00:00:00:00","check":"partial repair probe: digit right alignment","expected":"23:59:59:24","passed":false},{"actual":"00:00:00:00","check":"partial repair variant: digit right alignment","expected":"00:00:01:00","passed":false},{"actual":"00:00:01:02","check":"boundary control","expected":"00:00:01:02","passed":true},{"actual":"01:02:03:04","check":"boundary control","expected":"01:02:03:04","passed":true},{"actual":"00:00:59:10","check":"normal control","expected":"00:00:59:10","passed":true},{"actual":"00:01:03:03","check":"normal control","expected":"00:01:03:03","passed":true},{"actual":"00:00:59:23","check":"normal control","expected":"00:00:59:23","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: digit right alignment\", \"actual\": \"00:00:00:00\", \"expected\": \"00:00:01:00\", \"passed\": false}, {\"check\": \"regression variant: digit right alignment\", \"actual\": \"00:00:00:00\", \"expected\": \"00:01:01:11\", \"passed\": false}, {\"check\": \"partial repair probe: digit right alignment\", \"actual\": \"00:00:00:00\", \"expected\": \"23:59:59:24\", \"passed\": false}, {\"check\": \"partial repair variant: digit right alignment\", \"actual\": \"00:00:00:00\", \"expected\": \"00:00:01:00\", \"passed\": false}, {\"check\": \"boundary control\", \"actual\": \"00:00:01:02\", \"expected\": \"00:00:01:02\", \"passed\": true}, {\"check\": \"boundary control\", \"actual\": \"01:02:03:04\", \"expected\": \"01:02:03:04\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:00:59:10\", \"expected\": \"00:00:59:10\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:01:03:03\", \"expected\": \"00:01:03:03\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:00:59:23\", \"expected\": \"00:00:59:23\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.381,"exit_code":1,"observations":[{"actual":"10:00:00:00","check":"regression: digit right alignment","expected":"00:00:01:00","passed":false},{"actual":"11:59:00:00","check":"regression variant: digit right alignment","expected":"00:01:01:11","passed":false},{"actual":"23:59:59:24","check":"partial repair probe: digit right alignment","expected":"23:59:59:24","passed":true},{"actual":"10:00:00:00","check":"partial repair variant: digit right alignment","expected":"00:00:01:00","passed":false},{"actual":"00:00:01:02","check":"boundary control","expected":"00:00:01:02","passed":true},{"actual":"01:02:03:04","check":"boundary control","expected":"01:02:03:04","passed":true},{"actual":"00:00:59:10","check":"normal control","expected":"00:00:59:10","passed":true},{"actual":"00:01:03:03","check":"normal control","expected":"00:01:03:03","passed":true},{"actual":"00:00:59:23","check":"normal control","expected":"00:00:59:23","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: digit right alignment\", \"actual\": \"10:00:00:00\", \"expected\": \"00:00:01:00\", \"passed\": false}, {\"check\": \"regression variant: digit right alignment\", \"actual\": \"11:59:00:00\", \"expected\": \"00:01:01:11\", \"passed\": false}, {\"check\": \"partial repair probe: digit right alignment\", \"actual\": \"23:59:59:24\", \"expected\": \"23:59:59:24\", \"passed\": true}, {\"check\": \"partial repair variant: digit right alignment\", \"actual\": \"10:00:00:00\", \"expected\": \"00:00:01:00\", \"passed\": false}, {\"check\": \"boundary control\", \"actual\": \"00:00:01:02\", \"expected\": \"00:00:01:02\", \"passed\": true}, {\"check\": \"boundary control\", \"actual\": \"01:02:03:04\", \"expected\": \"01:02:03:04\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:00:59:10\", \"expected\": \"00:00:59:10\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:01:03:03\", \"expected\": \"00:01:03:03\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:00:59:23\", \"expected\": \"00:00:59:23\", \"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."}}