Understand the failure.
Verify the repair.
Small, reproducible software failures. The broken implementation, the fix that didn’t work, and the one that passed—preserved together.
Explore the cases ↓How results are verified ↗WHAT THE ARCHIVE CONTAINS
100840 executable cases. 20168 are open.
Every case records the implementation that fails, the fix that did not work, and the repair that passed its checks—with recorded outputs and source hashes. This release adds 100840 cases across 20168 failure mechanisms and 254 domains.
The open tier gives you the failure and the unsuccessful fix for one case in every mechanism. The remaining 80672 cases, 5 variants per mechanism, are member-only: the verified repair, its recorded checks, and the full fixture suite are held in the member archive. Read the methodology ↗
A RECORD OF WHAT WENT WRONG
Browse the archive / 100840
Opponent stones are treated as liberties · case 01
Surrounded chains are never captured and some suicides are accepted.
Opponent stones are treated as liberties · case 02
Surrounded chains are never captured and some suicides are accepted.
Opponent stones are treated as liberties · case 03
Surrounded chains are never captured and some suicides are accepted.
Opponent stones are treated as liberties · case 04
Surrounded chains are never captured and some suicides are accepted.
Opponent stones are treated as liberties · case 05
Surrounded chains are never captured and some suicides are accepted.
Ko ban is set when the capturing stone joins a friendly chain · case 01
A single-stone capture by a connected stone forbids an immediate recapture that is actually legal.
Ko ban is set when the capturing stone joins a friendly chain · case 02
A single-stone capture by a connected stone forbids an immediate recapture that is actually legal.
Ko ban is set when the capturing stone joins a friendly chain · case 03
A single-stone capture by a connected stone forbids an immediate recapture that is actually legal.
Ko ban is set when the capturing stone joins a friendly chain · case 04
A single-stone capture by a connected stone forbids an immediate recapture that is actually legal.
Ko ban is set when the capturing stone joins a friendly chain · case 05
A single-stone capture by a connected stone forbids an immediate recapture that is actually legal.
Ko is declared although the capturing stone has several liberties · case 01
Snapback-style single captures with open points around are flagged as ko.
Ko is declared although the capturing stone has several liberties · case 02
Snapback-style single captures with open points around are flagged as ko.
Ko is declared although the capturing stone has several liberties · case 03
Snapback-style single captures with open points around are flagged as ko.
Ko is declared although the capturing stone has several liberties · case 04
Snapback-style single captures with open points around are flagged as ko.
Ko is declared although the capturing stone has several liberties · case 05
Snapback-style single captures with open points around are flagged as ko.
Multi-stone captures create a ko ban · case 01
Capturing two stones marks the first captured point as a ko point.
Multi-stone captures create a ko ban · case 02
Capturing two stones marks the first captured point as a ko point.
Multi-stone captures create a ko ban · case 03
Capturing two stones marks the first captured point as a ko point.
Multi-stone captures create a ko ban · case 04
Capturing two stones marks the first captured point as a ko point.
Multi-stone captures create a ko ban · case 05
Capturing two stones marks the first captured point as a ko point.
Superko only compares against the position before the last move · case 01
Triple ko and longer cycles are accepted as legal.
Superko only compares against the position before the last move · case 02
Triple ko and longer cycles are accepted as legal.
Superko only compares against the position before the last move · case 03
Triple ko and longer cycles are accepted as legal.
Superko only compares against the position before the last move · case 04
Triple ko and longer cycles are accepted as legal.
Superko only compares against the position before the last move · case 05
Triple ko and longer cycles are accepted as legal.
Situational superko ignores whose turn it is · case 01
Repeating a position with a different player to move is rejected in situational mode.
Situational superko ignores whose turn it is · case 02
Repeating a position with a different player to move is rejected in situational mode.
Situational superko ignores whose turn it is · case 03
Repeating a position with a different player to move is rejected in situational mode.
Situational superko ignores whose turn it is · case 04
Repeating a position with a different player to move is rejected in situational mode.
Situational superko ignores whose turn it is · case 05
Repeating a position with a different player to move is rejected in situational mode.
Superko reports the most recent repeat instead of the first · case 01
The reported conflicting move number points at a later repetition.
Superko reports the most recent repeat instead of the first · case 02
The reported conflicting move number points at a later repetition.
Superko reports the most recent repeat instead of the first · case 03
The reported conflicting move number points at a later repetition.
Superko reports the most recent repeat instead of the first · case 04
The reported conflicting move number points at a later repetition.
Superko reports the most recent repeat instead of the first · case 05
The reported conflicting move number points at a later repetition.
The candidate position is appended to history before it is checked · case 01
Every move is reported as repeating itself.
The candidate position is appended to history before it is checked · case 02
Every move is reported as repeating itself.
The candidate position is appended to history before it is checked · case 03
Every move is reported as repeating itself.
The candidate position is appended to history before it is checked · case 04
Every move is reported as repeating itself.
The candidate position is appended to history before it is checked · case 05
Every move is reported as repeating itself.
13x13 handicap stones land on the third line · case 01
Handicap on 13x13 uses 3-3 points instead of 4-4 points.
13x13 handicap stones land on the third line · case 02
Handicap on 13x13 uses 3-3 points instead of 4-4 points.
13x13 handicap stones land on the third line · case 03
Handicap on 13x13 uses 3-3 points instead of 4-4 points.
13x13 handicap stones land on the third line · case 04
Handicap on 13x13 uses 3-3 points instead of 4-4 points.
13x13 handicap stones land on the third line · case 05
Handicap on 13x13 uses 3-3 points instead of 4-4 points.
A one-stone handicap places a stone · case 01
Handicap 1 (no komi, black first) puts a black stone on the board.
A one-stone handicap places a stone · case 02
Handicap 1 (no komi, black first) puts a black stone on the board.
A one-stone handicap places a stone · case 03
Handicap 1 (no komi, black first) puts a black stone on the board.
A one-stone handicap places a stone · case 04
Handicap 1 (no komi, black first) puts a black stone on the board.
A one-stone handicap places a stone · case 05
Handicap 1 (no komi, black first) puts a black stone on the board.
Six-stone handicap uses top and bottom side points · case 01
The fifth and sixth stones sit on the top/bottom edges instead of left/right.
Six-stone handicap uses top and bottom side points · case 02
The fifth and sixth stones sit on the top/bottom edges instead of left/right.
Six-stone handicap uses top and bottom side points · case 03
The fifth and sixth stones sit on the top/bottom edges instead of left/right.
Six-stone handicap uses top and bottom side points · case 04
The fifth and sixth stones sit on the top/bottom edges instead of left/right.
Six-stone handicap uses top and bottom side points · case 05
The fifth and sixth stones sit on the top/bottom edges instead of left/right.
Even handicaps get a centre stone · case 01
Six- and eight-stone handicaps receive tengen as an extra stone.
Even handicaps get a centre stone · case 02
Six- and eight-stone handicaps receive tengen as an extra stone.
Even handicaps get a centre stone · case 03
Six- and eight-stone handicaps receive tengen as an extra stone.
Even handicaps get a centre stone · case 04
Six- and eight-stone handicaps receive tengen as an extra stone.
Even handicaps get a centre stone · case 05
Six- and eight-stone handicaps receive tengen as an extra stone.
Even-sized boards receive side and centre handicap stones · case 01
A 10x10 board with 5+ handicap gets off-centre "tengen" stones.
Even-sized boards receive side and centre handicap stones · case 02
A 10x10 board with 5+ handicap gets off-centre "tengen" stones.
Even-sized boards receive side and centre handicap stones · case 03
A 10x10 board with 5+ handicap gets off-centre "tengen" stones.
Even-sized boards receive side and centre handicap stones · case 04
A 10x10 board with 5+ handicap gets off-centre "tengen" stones.
Even-sized boards receive side and centre handicap stones · case 05
A 10x10 board with 5+ handicap gets off-centre "tengen" stones.
Two-stone handicap uses the wrong diagonal · case 01
The first two stones go to upper-left and lower-right.
Two-stone handicap uses the wrong diagonal · case 02
The first two stones go to upper-left and lower-right.
Two-stone handicap uses the wrong diagonal · case 03
The first two stones go to upper-left and lower-right.
Two-stone handicap uses the wrong diagonal · case 04
The first two stones go to upper-left and lower-right.
Two-stone handicap uses the wrong diagonal · case 05
The first two stones go to upper-left and lower-right.
Columns after H are shifted because I is not skipped · case 01
J10 is parsed one column too far right and I5 is accepted.
Columns after H are shifted because I is not skipped · case 02
J10 is parsed one column too far right and I5 is accepted.
Columns after H are shifted because I is not skipped · case 03
J10 is parsed one column too far right and I5 is accepted.
Columns after H are shifted because I is not skipped · case 04
J10 is parsed one column too far right and I5 is accepted.
Columns after H are shifted because I is not skipped · case 05
J10 is parsed one column too far right and I5 is accepted.
GTP row numbers are read from the top edge · case 01
D4 lands on the fourth row from the top instead of the bottom.
GTP row numbers are read from the top edge · case 02
D4 lands on the fourth row from the top instead of the bottom.
GTP row numbers are read from the top edge · case 03
D4 lands on the fourth row from the top instead of the bottom.
GTP row numbers are read from the top edge · case 04
D4 lands on the fourth row from the top instead of the bottom.
GTP row numbers are read from the top edge · case 05
D4 lands on the fourth row from the top instead of the bottom.
Lower-case vertices and "pass" are rejected · case 01
Engines sending d4 or pass get "invalid".
Lower-case vertices and "pass" are rejected · case 02
Engines sending d4 or pass get "invalid".
Lower-case vertices and "pass" are rejected · case 03
Engines sending d4 or pass get "invalid".
Lower-case vertices and "pass" are rejected · case 04
Engines sending d4 or pass get "invalid".
Lower-case vertices and "pass" are rejected · case 05
Engines sending d4 or pass get "invalid".
Column one past the board edge or row zero is accepted · case 01
Vertices outside the board are converted to coordinates.
Column one past the board edge or row zero is accepted · case 02
Vertices outside the board are converted to coordinates.
Column one past the board edge or row zero is accepted · case 03
Vertices outside the board are converted to coordinates.
Column one past the board edge or row zero is accepted · case 04
Vertices outside the board are converted to coordinates.
Column one past the board edge or row zero is accepted · case 05
Vertices outside the board are converted to coordinates.
tt is treated as a pass on boards larger than 19x19 · case 01
A real move at column 20 row 20 on a 21x21 board is dropped as a pass.
tt is treated as a pass on boards larger than 19x19 · case 02
A real move at column 20 row 20 on a 21x21 board is dropped as a pass.
tt is treated as a pass on boards larger than 19x19 · case 03
A real move at column 20 row 20 on a 21x21 board is dropped as a pass.
tt is treated as a pass on boards larger than 19x19 · case 04
A real move at column 20 row 20 on a 21x21 board is dropped as a pass.
tt is treated as a pass on boards larger than 19x19 · case 05
A real move at column 20 row 20 on a 21x21 board is dropped as a pass.
SGF column and row are returned swapped · case 01
Moves are mirrored across the main diagonal.
SGF column and row are returned swapped · case 02
Moves are mirrored across the main diagonal.
SGF column and row are returned swapped · case 03
Moves are mirrored across the main diagonal.
SGF column and row are returned swapped · case 04
Moves are mirrored across the main diagonal.
SGF column and row are returned swapped · case 05
Moves are mirrored across the main diagonal.
INSPECTABLE BY DESIGN
Every result has a runnable source.
Runnable implementations with recorded outputs, source hashes, and explicit contracts. Related variants share a failure mechanism and belong together in evaluation splits.
Read the methodology ↗