Index · pending cases r28 · one case in full

Pending case: room 0b5acbb6, move 2 (c4). What happens, what fails, what the same facts can say.

Story 44d849b7-1b67-404d-9a55-1015f8a623ff, room 0b5acbb6-6def-48f1-9d2b-72e21ded2690. You play white. Your opponent plays black. Zapp move 2 is black's move at game move 35. Classification in pending-unclear-r28.md: positional-gives-material (110 of the 283 pending moments are in this class).

1. The facts the generator has

Position before c4. Black to move. Black has two rooks on g3 and h3 near your king.

Score before the move-441 cp (white's side). Black is winning by about 4.4 pawns.
Best move for blackRxg2+ (g3g2)
Move playedc4 (c5c4)
Score after c4-155 cp. Black is still better, by about 1.5 pawns.
Drop286 cp. Above the 90 cp limit, so this is a mistake moment.
Your reply in the gameRf2 (f1f2), score -194 cp. This is also the engine's best reply.
Stored best line before c4g3g2 e2g2 h3g3 a2a4 g3g2 g1g2 b5a4 f1e1 = Rxg2+ Qxg2 Rg3 a4 Rxg2+ Kxg2 bxa4 Re1 (8 plies, in the facts already)

2. What the generator does today, step by step

  1. It sees the drop of 286 cp and opens a mistake moment for black's move c4.
  2. It reads the top replies for white from the next move's cpScoresOfTopMoves. The best reply is Rf2 at -194 cp. Every reply within 100 cp of it is a candidate: three of ten.
  3. For each candidate it walks the stored line (10 plies at most, played reply from pvAfterPlayedMove, others from the candidate facts) and adds up captured material from your side.
  4. A line is "tellable" only when it is a mate, or when you are ahead by at least 1 pawn and the material stops changing by ply 8.
  5. No candidate is tellable, so the punishment scene keeps the old text.

Candidate replies and the walk result

replyscore (white)in window (best − 100)line sourceline walkednet material for yousettles at plyverdict
Rf2-194yespvAfterPlayedMoveRf2 Re3 Qd2 Rd3 Qe1 Kg7 Rh2 Rdg3+ Kf1 c300rejected: no material gain
Qe6+-209yescandidateFactQe6+ Kg7 Qf7+ Qxf7 gxf7 Kxf7 Rxg3 Rxg3+ Kf2 Rd3-18rejected: no material gain
Qe8+-234yescandidateFactQe8+ Kg7 Qf7+ Qxf7 gxf7 Kxf7 Rxg3 Rxg3+ Kf2 Rh3-18rejected: no material gain
Rf4-312nonone---not tried, outside the window
a4-485nonone---not tried, outside the window
b3-504nonone---not tried, outside the window
a3-563nonone---not tried, outside the window
g7-571nonone---not tried, outside the window
b4-581nonone---not tried, outside the window
Rb1-590nonone---not tried, outside the window

The three walks in detail (running sum from your side)

Rf2 (-194 cp)

plymovetakesrunning sum (you)
1Rf2-0
2Re3-0
3Qd2-0
4Rd3-0
5Qe1-0
6Kg7-0
7Rh2-0
8Rdg3+-0
9Kf1-0
10c3-0

Qe6+ (-209 cp)

plymovetakesrunning sum (you)
1Qe6+-0
2Kg7-0
3Qf7+-0
4Qxf7queen-9
5gxf7queen0
6Kxf7pawn-1
7Rxg3rook+4
8Rxg3+rook-1
9Kf2--1
10Rd3--1

Qe8+ (-234 cp)

plymovetakesrunning sum (you)
1Qe8+-0
2Kg7-0
3Qf7+-0
4Qxf7queen-9
5gxf7queen0
6Kxf7pawn-1
7Rxg3rook+4
8Rxg3+rook-1
9Kf2--1
10Rh3--1

Rf2 makes a long line with no capture in the first 10 plies: sum 0. Qe6+ and Qe8+ force a queen trade and then you are one pawn down: sum −1. None of them wins anything. That is correct chess: c4 does not hang a piece. Black is still better after every reply.

3. The text shown today

Scene opponent-mistake-1-move: Here your opponent moved their pawn (c4). It hands you a chance. Let's find it.

Scene opponent-mistake-1-punishment: They don't lose a piece right away, but after your reply (Rf2), part of their advantage slips away. And (Rf2) is exactly what you played. Well done.

Steps: f1f2 → "Your rook moves (Rf2)."

4. What fails

5. A reasonable explanation from the same facts

Walk the stored best line before c4 with the same rule (material sum, settle by ply 8). It is tellable: black wins your queen and a pawn for a rook, net +5 for black, settled at ply 7. Class: slow material.

plymovetakesrunning sum (them)
1Rxg2+rook+5
2Qxg2rook0
3Rg3-0
4a4-0
5Rxg2+queen+9
6Kxg2rook+4
7bxa4pawn+5

Proposed scene (prototype text from the board and the line)

Their move (c4) was a mistake. Before it, they had (Rxg2+): it wins your queen and a pawn for a rook, net +5 for them. Let's see what they gave up.

  1. 1Their rook takes your rook (Rxg2+). Check. Net +5 for them.
  2. 2Your queen takes their rook (Qxg2). Net 0 for them.
  3. 3Their rook moves (Rg3).
  4. 4Your pawn moves (a4).
  5. 5Their rook takes your queen (Rxg2+). Check. Net +9 for them.
  6. 6Your king takes their rook (Kxg2). Net +4 for them.
  7. 7Their pawn takes your pawn (bxa4). Net +5 for them.

After (c4) that line is gone. Your reply (Rf2) keeps the game close. And (Rf2) is exactly what you played. Well done.

The scene starts from the position before c4 (black to move) and plays the missed line. The last two sentences are the old closing, kept.

6. What this needs in the code, and what it covers

Data: ai-workspace/game-story-prod-review/regen/inputs-r28/44d849b7-1b67-404d-9a55-1015f8a623ff.json, script regen/scripts-r28/, dump ai-workspace/dump-case.ts. Built 2026-08-27.