Would today's AI have caught Ariane 5? I rebuilt 26 of history's costliest bugs to find out A developer built Hindsight, a 26-case benchmark that reconstructs documented software failures — including the Ariane 5 inertial reference bug, the Patriot battery at Dhahran, Knight Capital's 45 minutes, the CrowdStrike channel file and the Reinhart-Rogoff spreadsheet — as minimal artifacts and asks whether today's models would have caught the defect before it shipped. Each case is presented in four forms (original, disguised, disguised plus operating context, and fixed) so the gap between original and disguised serves as a memorisation signal, with a judge model comparing answers against the published root cause. This is a submission for the Kaggle Benchmarking Challenge https://dev.to/challenges/kaggle-2026-09-23 . Hindsight asks a simple question: if you had shown today's models the code behind history's most expensive software failures, the day before it shipped, would they have caught the bug? I spent the last few weeks reading accident reports for a series of short animated explainers about famous failures: the Ariane 5 inertial reference software, the Patriot battery at Dhahran, Knight Capital's 45 minutes, the CrowdStrike channel file, the spreadsheet behind Reinhart and Rogoff. Every report ends the same way: the defect was small, local and visible in a few lines, and nobody saw it in time. That made me curious whether a code review by a model would have changed anything. The benchmark has 26 cases. Each is a documented failure with a published root cause an inquiry board, a GAO or SEC report, a vendor post-mortem or a peer-reviewed paper , rebuilt as a minimal artifact: a function, a shell script, an Excel formula, an RTOS configuration. No names, no dates. The model gets the artifact and one line about the system, and answers in a fixed format: VERDICT: DEFECT / NO DEFECT , what fails, the trigger, the consequence. A judge model compares the answer with the published root cause. Every case comes in four forms, which are the four tasks of the benchmark: | Task | What the model sees | What it measures | |---|---|---| | Original | the reconstruction in its original setting Ada on a launcher, Pascal on a radiotherapy machine | can it catch the failure? | | Disguised | the same mechanism moved to another domain, language and naming the Ariane conversion becomes a Python drone telemetry packer | is it reasoning, or recognising a famous story? | | Disguised + context | the disguised artifact plus the one operating fact that triggered the real failure "the new drone flies five times faster" | how much does knowing the environment help? | | Fixed | the original artifact after the fix that was applied | does it raise false alarms on code that is now correct? | The gap between Original and Disguised is a memorisation signal. The gap between Disguised and Disguised + context measures something the accident reports keep returning to: much of this code was correct for the system it was written for, and failed in a new environment. Here is the Ariane 5 case. The original form is close to what flew in 1996: a 64-bit float converted to a 16-bit integer, protected on one variable and not on the other, because analysis of the old rocket's trajectory showed it stayed small. procedure Update Alignment is HB Bus : Integer 16; -- horizontal bias, 16-bit field on the data bus VB Bus : Integer 16; -- vertical bias begin Horizontal Bias := Compute Horizontal Bias Horizontal Velocity ; -- Long Float Vertical Bias := Compute Vertical Bias Vertical Velocity ; -- Long Float VB Bus := Integer 16 Saturate Vertical Bias, -32 768.0, 32 767.0 ; HB Bus := Integer 16 Horizontal Bias ; -- no saturation on HB: analysis of the trajectory showed it stays small Bus.Put Field = VB, Value = VB Bus ; Bus.Put Field = HB, Value = HB Bus ; end Update Alignment; -- no exception handler in this procedure The disguised form keeps the mechanism and changes everything a model could pattern-match on: a cargo drone, Python, a radio packet, millimetres instead of velocities. python def pack drift nav : radio link fields are signed 16-bit integers struct code 'h' alt drift = clamp int nav.vertical drift mm , -32768, 32767 lat drift = int nav.lateral drift mm analysis showed lateral drift stays small return struct.pack '