Loading the drill…
The scenarios live in hanko/drill.py and run in the test suite on every change (tests/test_drill.py), so a defence that stops holding fails the build before it reaches this page.
Each scenario feeds one failure, such as a dead source or a tampered file, into Hanko's real code. Only the outside world is simulated. The drill then checks whether the promise held, so a scenario can come back BROKE. One did, the first time it ran: a restarted sweep recorded the same decision twice. The fix is D-18 in the decision log. Everything runs offline on recorded responses, so pressing a button costs nothing.
The scenarios live in hanko/drill.py and run in the test suite on every change (tests/test_drill.py), so a defence that stops holding fails the build before it reaches this page.