One-line game stories: where Akshat's format works, where it fails, and what must change

Data: 120 regenerated production stories (round r27), 676 mistake moments, checked with Stockfish 17 on 2026-08-26. Every example on this page is taken from that set or from the Kxh4 case Akshat wrote up in Slack. "Template text" is produced by a small prototype from the board and the engine line; it is not master output.

676mistake moments in 120 stories
228have a short material or mate line (33.7%)
177of those also have a score that backs the closing sentence (26.2%)
235no material to tell (34.8%)
213too long: 7+ plies (31.5%)
292headlines today that are vague (43.2%)
2442/2459step texts today with no purpose
Contents
  1. What Akshat wrote, sentence by sentence
  2. The same case through the checker
  3. Why the generator does not write this today
  4. The numbers over 120 stories
  5. Where the format works
  6. Where the format fails
  7. Akshat's rules, one by one, with counterexamples
  8. What must change
  9. How the numbers were made, and limits

1. What Akshat wrote, sentence by sentence

Akshat's Slack write-up of the Kxh4 case (room 6d08e398, white to move, position before the mistake r2r2k1/p4p2/1q3n1p/8/1b2P2p/3B1PKP/1R3P2/3Q3R w - - 0 30):

King to h4 was a mistake here. It leads to black getting a rook and a pawn in exchange for a knight and a pawn, so +2 for black. Lets see how

Black knight captures the pawn with a genius knight sacrifice

The pawn captures back, gaining net 2 points. But the lead is not fair, see what happens next

The queen forks the king and the white rook, setting up the comeback

king moves back to get out of the check

The queen gets the rook, making the net lead +2. White can't force a recovery.

The line is 30.Kxh4 Nxe4 31.fxe4 Qf6+ 32.Kg3 Qxb2. Each sentence needs one fact, and each fact is computable:

SentenceFact it needsWhere the fact comes from
"King to h4 was a mistake"Score drop between the best move and the played moveEngine, already in the story input (isMistake)
"black getting a rook and a pawn in exchange for a knight and a pawn, so +2"Pieces taken by each side up to the point where material stops changing, and the sumPiece count along the line (chess.js); the generator already has settledLineGain
"knight captures the pawn with a genius knight sacrifice"The move is a capture, and the moved piece can be taken back by a cheaper pieceBoard: attackers of the landing square
"The pawn captures back, gaining net 2 points"Recapture; running material sum after the plyBoard
"The queen forks the king and the white rook"After the move, the queen attacks the king and a rookBoard: attacked squares of the moved piece; the generator already has a fork detector ("attacks X and Y at the same time")
"king moves back to get out of the check"The side to move was in check and moved the kingBoard
"The queen gets the rook, making the net lead +2"Capture; running sum; sum does not change on the next plyBoard: the payoff ply (last change of the sum)
"White can't force a recovery"The engine score after the best defence stays winning for blackEngine score of the best defence
Note on the numbersAkshat counts +2 from the position before Kxh4: white took a pawn with Kxh4 (h4), then loses pawn + rook for a knight, so 1 + 5 − 3 − 1 = +2 for black. Counted from the position after Kxh4, the same line is +3 (pawn + rook for a knight). Both are right; they use different zero points. The generator must fix one zero point and say it. The page uses "after the mistake" as the zero point, which matches how the story scenes are built (the consequence scene starts after the mistake).

2. The same case through the checker

2.1 Akshat's line, written by the template

The prototype takes the position after Kxh4 and Akshat's moves (Nxe4 fxe4 Qf6+ Kg3 Qxb2), and writes:

Kxh4 was a mistake. It costs you a pawn and a rook for a knight: net +3 for them. Let's see how.

Their knight takes your pawn (Nxe4). It is a sacrifice: the knight can be taken. Net +1 for them.

Your pawn takes back (fxe4). Net -2 for them.

Their queen moves (Qf6+). Check. It attacks your king and your rook at the same time.

Your king steps out of check (Kg3).

Their queen takes your rook (Qxb2). Net +3 for them.

You can't get it back.

Running sum from the position after Kxh4: Nxe4+1 fxe4-2 Qf6+-2 Kg3-2 Qxb2+3 Kh2+3. This is Akshat's text with three differences: the sum is +3 not +2 (zero point, see the note above), "genius" is not there, and "the lead is not fair, see what happens next" is replaced by the sum going negative and then positive. Everything else is a board fact the template reads off the line. So the format can be generated, given the line.

2.2 Which line the checker picks when it must choose

The checker (ai-workspace/game-story-prod-review/deva-format/line-check.mjs) does not know Akshat's line. It looks at the six best replies, walks each engine line for 10 plies, and marks the ply where the material sum changes for the last time (the payoff). Among replies within 1.5 pawns of the best score it picks the one whose payoff comes soonest, larger sum on a tie.

ReplyScore (cp, black)Sum at payoffPayoff ply
Kh862706
Nd5618+27
Nxe4 (picked)603+35
Nh7592+25
a558100
Kf8577-38

Picked: Nxe4 fxe4 Be7+ Kg3 Qxb2, category material-short, sum +3 at ply 5, engine candidate 3 (603 cp against 627 cp for the best reply). Running sum: Nxe4+1 fxe4-2 Be7+-2 Kg3-2 Qxb2+3.

Template text for the picked line:

Kxh4 was a mistake. It costs you a pawn and a rook for a knight: net +3 for them. Let's see how.

Their knight takes your pawn (Nxe4). It is a sacrifice: the knight can be taken. Net +1 for them.

Your pawn takes back (fxe4). Net -2 for them.

Their bishop moves (Be7+). Check.

Your king steps out of check (Kg3).

Their queen takes your rook (Qxb2). Net +3 for them.

You can't get it back.

Defender alternatives within 100 cp inside the picked line: at ply 2, Rg1+ instead of fxe4 (as good or better for the defender); at ply 4, Kg4 instead of Kg3 (30 cp worse).

The stop rule and the depth decide whether Akshat's line is foundTwo earlier versions of the checker did not find this line. With "stop at the first point where the punisher is a pawn up" the checker picked Nxe4 and stopped after one ply ("it costs you a pawn"), because Nxe4 wins a pawn at once and the engine's reply at depth 18, 31.Rg1+, does not take it back. With "use the engine's first line" it picked Kh8 (payoff at ply 6 or 7, sum 0 to +3 depending on depth). Only the payoff rule (last change of the sum, earliest payoff among near-best replies) picks Akshat's line. The branch test at depth 14 then says 31.Rg1+ is as good as 31.fxe4 (gap 8 cp) and 32.Kg4 is 30 cp from 32.Kg3. At depth 32 (90 seconds, 4 threads) neither holds: 31.fxe4 −818 cp against 31.Rg1+ −992 cp, and 32.Kg4 is mate in 20 for black. So Akshat's road is the engine's road at depth, and the two "branches" are shallow-search noise. Lesson: the line choice, the stop rule and the branch test all need production depth or better; at depth 14 to 18 a clean 5-ply story becomes a 1-ply or 9-ply one. Rg1+ stays a road humans take (25% in the Slack human-move data) and it loses the same rook two moves later, so the closing sentence must also be proved on it, even though the engine ranks it lower.

3. Why the generator does not write this today

Master's story for the same game (round-3 Kg2 case, exact master version) never explains Kxh4. Move 10 is told as the opponent's mistake (gxh4+) and your missed punishment (Kg2): "Here's the line that was open to you. In the game you handled it your own way with (Kxh4)." The mistake itself gets no scene. The scene before it (move 9, Kg3) reads: "From here they have a way to win material." with five steps: "Their bishop moves (Bd6+). Your king moves (Kg2). Their queen captures your rook (Qxb2). Your bishop captures their pawn (Bxg5). Their pawn captures your bishop (hxg5)." No purpose, no sum, no end.

Four reasons, all in libs/api/src/domain/zapp/game-story/pure.ts:

Reason 1: line choicegetLineMoves (line 619) replays the engine's first line only. Akshat's line is engine candidate 2 to 5 (Nxe4 scores 603 cp against 627 cp for Kh8). It is not the best line; it is the shortest line with a clear material result. The generator has no notion of "easiest line to tell".
Reason 2: where the line stopstrimMovesToForcingCore (line 659) cuts the shown line at the first move that is neither a check nor a same-square recapture. It stops before the payoff (move 9 above ends on hxg5 with no closing sentence), or after one move ("Here's the line that was open to you." + Kg2). Akshat stops at the payoff and says so.
Reason 3: step textmoveStepText (about line 2622) writes only "Your king moves (Kg3)." or "Their queen captures your rook (Qxb2)." for every ply. No sacrifice, no fork, no "out of check", no running sum. Of 2459 step texts in the 120 stories, 2442 are of this form.
Reason 4: headlineproblemText (line 1744) and the punishment/correct-move builders pick a headline from claim classes (hanging piece, loses material, wins piece, mate). When no class fires, they fall back to "From here they have a way to win material.", "Here's the line that was open to them.", "they end up with the better position", "keeps the game even". 292 of 676 consequence headlines in the 120 stories (43.2%) are such fallbacks. Akshat's headline is the material sum, which is always computable when material changes.

4. The numbers over 120 stories

Categories after the checker's line choice (six candidates, payoff rule, 6 plies = Akshat's "3-4 steps" as three move pairs):

CategoryMeaningMomentsShare
material-shortMaterial payoff within 6 plies, sum at least a pawn. The format applies.19629.0%
mate-shortForced mate in 3 or less. The format applies (mate replaces the sum).324.7%
material-longPayoff after 7 to 10 plies, or still trading at ply 9-10. Too many steps.17025.1%
mate-longForced mate in 4 or more. Too many steps.436.4%
positionalSum below a pawn at ply 10 of the best line. No sum to tell.23534.8%
Moment kindMomentsmaterial-shortmate-shortmaterial-longmate-longpositional
mistake29386167516100
slight-miss401009120
opponent-mistake2948916782388
opponent-slight-miss491108327

Inside the 228 moments that fit: 58 pay off on the first ply (the reply simply takes a hanging piece; the format collapses to one step); 53 use a candidate other than the engine's first line (the first line is longer or quieter); 132 have at least one defender alternative within 100 cp inside the told line. For material-short moments, the line shown today is shorter than the payoff line in 73 cases, equal in 77, longer in 46.

102 of the 235 positional moments have the punisher behind in material at ply 10 of the best line: the best line gives material away for an attack or a bind, and the eval is still winning. A material headline would be false for them.

5. Where the format works

Examples with the running sum, today's text, and the template text the prototype writes from the board and the line. The template is mechanical: capture, check, sacrifice (moved piece can be taken by a cheaper piece), fork (moved piece attacks two pieces worth a minor piece or more, or the king plus one), king out of check, running sum, and a closing sentence.

Short material lines

3c6deae8 move 6 · black, your move · mistake Rxc7 · material-short · net +9 at ply 3

Position after the mistake: 6k1/1qrQ1pp1/7p/8/8/p7/2R2PPP/5RK1 w - - 0 34
Engine: best 3771 cp for the punisher; line used 3771 cp (candidate 1).

Line with running material (punisher's view): Rxc7+5 Qxc70 Qxc7+9 g5+9 Qe5+9 a2+9 Ra1+9 g4+9

Text today: From here they have a way to win your queen. Along the way the rooks get traded. It leaves their rook on c7 where you can take it, but their queen guards c7, so the trade loses material for you.

Steps today: Their rook captures your rook (Rxc7). Your queen captures their rook (Qxc7). Their queen captures your queen (Qxc7).

Template text (from board + line, prototype): Rxc7 was a mistake. It costs you a rook and a queen for a rook: net +9 for them. Let's see how.

  1. Their rook takes your rook (Rxc7). It attacks your queen. Net +5 for them.
  2. Your queen takes back (Qxc7). Net 0 for them.
  3. Their queen takes back (Qxc7). Net +9 for them.

You can't get it back.

1a93804a move 3 · white, your move · mistake Rf2 · material-short · net +8 at ply 5

Position after the mistake: 5rr1/1R6/2pk3p/4nP2/P2p4/3P3q/2Q2RN1/6K1 b - - 3 33
Engine: best 3603 cp for the punisher; line used 3603 cp (candidate 1).

Line with running material (punisher's view): Re80 Rb20 Ng40 Qxc6+-1 Kxc6+8 Rfc2++8 Kd7+8 Rb7++8

Text today: Your defense gets even harder from here. It leaves their rook on g2 where you can take it, but even if you take it, they stay winning. Players usually take it here.

Steps today: Their rook captures your knight (Rxg2+).

Template text (from board + line, prototype): Rf2 was a mistake. It costs you a queen for a pawn: net +8 for them. Let's see how.

  1. Their rook moves (Re8).
  2. Your rook moves (Rb2).
  3. Their knight moves (Ng4). It attacks your rook.
  4. Your queen takes their pawn (Qxc6+). Check. Net -1 for them.
  5. Their king steps out of check (Kxc6). Net +8 for them.

You can't get it back.

6ed57aa7 move 34 · white, opponent's move · mistake Kc6 · material-short · net +3 at ply 5

Position after the mistake: 8/6p1/1Pk4p/2P5/5K1P/8/8/8 w - - 1 45
Engine: best 3576 cp for the punisher; line used 3576 cp (candidate 1).

Line with running material (punisher's view): h50 Kxc5-1 b7-1 Kb6-1 b8=R++3 Ka6+3 Rg8+3 g5++3

Defender alternatives within 100 cp: ply 2: Kxc5 shown, Kb5 is as good or better.

Text today: They don't lose a piece right away, but after your reply (h5), this is the line to watch. You found (h5) here as well.

Steps today: Your pawn moves (h5). Their king moves (Kb7). Your king moves (Kf5). Their king moves (Kc8). Your king moves (Ke5). Their king moves (Kd7). Your king moves (Kd5). Their king moves (Kc8).

Template text (from board + line, prototype): Kc6 was a mistake. You get a new rook for a pawn: net +3 for you. Let's see how.

  1. Your pawn moves (h5).
  2. Their king takes your pawn (Kxc5). Net -1 for you.
  3. Your pawn moves (b7).
  4. Their king moves (Kb6).
  5. Your pawn becomes a rook (b8=R+). Check. Net +3 for you.

They can't get it back.

d9d59cf3 move 7 · black, opponent's move · mistake Rxc5 · material-short · net +9 at ply 5

Position after the mistake: 5r1k/1b4p1/3R3p/2R5/8/4P3/Pr2B1PP/6K1 b - - 0 26
Engine: best 3571 cp for the punisher; line used 3571 cp (candidate 1).

Line with running material (punisher's view): Rxe2+3 Rf5+3 Rxg2++4 Kf1+4 Rxf5++9 Ke1+9 Rc5+9 e4+9

Text today: The problem for them is their bishop. It can be taken, and they can't save it. Along the way you take their rook. You found (Rxe2) in the game too.

Steps today: Your rook captures their bishop (Rxe2). Their rook moves (Rf5). Your rook captures their pawn (Rxg2+). Their king moves (Kf1). Your rook captures their rook (Rxf5+).

Template text (from board + line, prototype): Rxc5 was a mistake. It costs them a bishop, a pawn and a rook: net +9 for you. Let's see how.

  1. Your rook takes their bishop (Rxe2). Net +3 for you.
  2. Their rook moves (Rf5).
  3. Your rook takes their pawn (Rxg2+). Check. Net +4 for you.
  4. Their king steps out of check (Kf1). It attacks your rook.
  5. Your rook takes their rook (Rxf5+). Check. Net +9 for you.

They can't get it back.

cc9ed5b7 move 28 · black, your move · mistake Kg7 · material-short · net +1 at ply 6

Position after the mistake: 8/6k1/3b1N2/8/5pP1/5K2/8/8 w - - 1 59
Engine: best 3571 cp for the punisher; line used 3571 cp (candidate 1).

Line with running material (punisher's view): Ne8+0 Kf70 Nxd6++3 Ke6+3 Kxf4+4 Kxd6+1 Kf5+1 Ke7+1

Defender alternatives within 100 cp: ply 2: Kf7 shown, Kh6 is as good or better; ply 4: Ke6 shown, Kf8 is as good or better; ply 6: Kxd6 shown, Kd5 is 81 cp worse.

Text today: From here they have a way to win your bishop.

Steps today: Their knight moves (Ne8+). Your king moves (Kh6). Their knight captures your bishop (Nxd6).

Template text (from board + line, prototype): Kg7 was a mistake. It costs you a bishop and a pawn for a knight: net +1 for them. Let's see how.

  1. Their knight moves (Ne8+). Check. It attacks your king and your bishop at the same time.
  2. Your king steps out of check (Kf7). It attacks their knight.
  3. Their knight takes your bishop (Nxd6+). Check. Net +3 for them.
  4. Your king steps out of check (Ke6). It attacks their knight.
  5. Their king takes your pawn (Kxf4). Net +4 for them.
  6. Your king takes their knight (Kxd6). Net +1 for them.

You can't get it back.

35914ca3 move 11 · black, opponent's move · mistake Rg1 · material-short · net +12 at ply 5

Position after the mistake: 5rk1/pp4q1/6b1/3pp2Q/8/2P5/PP1N1r2/R2K2R1 b - - 1 27
Engine: best 3464 cp for the punisher; line used 3464 cp (candidate 1).

Line with running material (punisher's view): Bxh5++9 Kc2+9 Bg6++9 Kb3+9 Rxd2+12 Rad1+12 Bc2++12 Kb4+12

Text today: The problem for them is their queen. It can be taken, and they can't save it. Along the way you take their knight. You found (Bxh5+) here as well.

Steps today: Your bishop captures their queen (Bxh5+). Their king moves (Kc2). Your bishop moves (Bg6+). Their king moves (Kb3). Your rook captures their knight (Rxd2).

Template text (from board + line, prototype): Rg1 was a mistake. It costs them a queen and a knight: net +12 for you. Let's see how.

  1. Your bishop takes their queen (Bxh5+). Check. Net +9 for you.
  2. Their king steps out of check (Kc2).
  3. Your bishop moves (Bg6+). Check.
  4. Their king steps out of check (Kb3).
  5. Your rook takes their knight (Rxd2). Net +12 for you.

They can't get it back.

Short mates

44509466 move 7 · black, opponent's move · mistake Nxd4 · mate-short · net +5 at ply 1 · mate in 1

Position after the mistake: b4r1k/2p3p1/7p/8/1pBN4/3P4/2P3PP/5R1K b - - 0 30
Engine: best 9999 cp for the punisher; line used 9999 cp (candidate 1).

Line with running material (punisher's view): Rxf1#+5

Text today: This line ends in checkmate. And you played (Rxf1#) in the game as well.

Steps today: Your rook captures their rook (Rxf1#).

Template text (from board + line, prototype): Nxd4 was a mistake. It allows checkmate in 1. Let's see how.

  1. Your rook takes their rook (Rxf1#). Checkmate. Net +5 for you.
dae255d7 move 25 · white, your move · mistake Kg5 · mate-short · net 0 at ply 1 · mate in 1

Position after the mistake: 5Q2/5ppk/5np1/6K1/2q5/6N1/5PPP/8 b - - 8 39
Engine: best 9999 cp for the punisher; line used 9999 cp (candidate 1).

Line with running material (punisher's view): Qg4#0

Text today: The real problem is your king. This line ends in checkmate. It looks like you can take their queen on g4 with your king, but their knight guards g4, so that capture is illegal. It looks like you can take their knight on f6 with your king, but their pawn guards f6, so that capture is illegal.

Steps today: Their queen moves (Qg4#).

Template text (from board + line, prototype): Kg5 was a mistake. It allows checkmate in 1. Let's see how.

  1. Their queen moves (Qg4#). Checkmate.
a3dc70f0 move 17 · black, opponent's move · mistake h4 · mate-short · net 0 at ply 1 · mate in 1

Position after the mistake: 8/1ppk2r1/3b4/4q3/P6P/1P1P1Q2/8/3R3K b - - 0 44
Engine: best 9999 cp for the punisher; line used 9999 cp (candidate 1).

Line with running material (punisher's view): Qh2#0

Text today: This line ends in checkmate. It looks like they can take your queen on h2 with their king, but your bishop guards h2, so that capture is illegal. In the game you played (Qd4). That still keeps you winning — the line shown is another strong option.

Steps today: Your queen moves (Qh2#).

Template text (from board + line, prototype): h4 was a mistake. It allows checkmate in 1. Let's see how.

  1. Your queen moves (Qh2#). Checkmate.

One-ply payoffs (the format collapses)

44509466 move 7 · black, opponent's move · mistake Nxd4 · mate-short · net +5 at ply 1 · mate in 1

Position after the mistake: b4r1k/2p3p1/7p/8/1pBN4/3P4/2P3PP/5R1K b - - 0 30
Engine: best 9999 cp for the punisher; line used 9999 cp (candidate 1).

Line with running material (punisher's view): Rxf1#+5

Text today: This line ends in checkmate. And you played (Rxf1#) in the game as well.

Steps today: Your rook captures their rook (Rxf1#).

Template text (from board + line, prototype): Nxd4 was a mistake. It allows checkmate in 1. Let's see how.

  1. Your rook takes their rook (Rxf1#). Checkmate. Net +5 for you.

One step. "Let's see how" and a running sum add nothing here; the headline alone is the story.

7e6d1be3 move 1 · black, opponent's move · mistake Rd6 · material-short · net +9 at ply 1

Position after the mistake: 4q1k1/p3r1p1/1p1R1pQ1/4r3/8/8/P4PPP/5RK1 b - - 5 29
Engine: best 592 cp for the punisher; line used 592 cp (candidate 1).

Line with running material (punisher's view): Qxg6+9 Rdd1+9 Re2+9 a4+9 Qf5+9 h3+9 Kf7+9 Rc1+9

Text today: After the reply shown (Qxg6), you end up with the better position. Along the way you take their queen. In the game you played (Re1) instead, so you missed this chance. Remember it for next time.

Steps today: Your queen captures their queen (Qxg6).

Template text (from board + line, prototype): Rd6 was a mistake. It costs them a queen: net +9 for you. Let's see how.

  1. Your queen takes their queen (Qxg6). Net +9 for you.

They can't get it back.

One step. "Let's see how" and a running sum add nothing here; the headline alone is the story.

eefc0949 move 15 · black, opponent's move · mistake Qxd2 · material-short · net +9 at ply 1

Position after the mistake: 5rk1/5p1p/4p1p1/8/2P5/1P6/3Q2PP/3qR2K b - - 0 40
Engine: best 1308 cp for the punisher; line used 1308 cp (candidate 1).

Line with running material (punisher's view): Qxd2+9 Rg1+9 e5+9 h4+9 e4+9 h5+9 e3+9 Kh2+9

Text today: After your reply (Qxd2), you end up with the better position. Along the way you take their queen. It threatens checkmate with (Qxe1#). And (Qxd2) is exactly what you played. Well done.

Steps today: Your queen captures their queen (Qxd2).

Template text (from board + line, prototype): Qxd2 was a mistake. It costs them a queen: net +9 for you. Let's see how.

  1. Your queen takes their queen (Qxd2). It attacks their rook. Net +9 for you.

They can't get it back.

One step. "Let's see how" and a running sum add nothing here; the headline alone is the story.

What this showsFor 33.7% of the moments, the whole narration is a function of the board and one engine line. The template already beats today's text in these cases because it names the sum, the purpose of each move and the end.

6. Where the format fails

6.1 No material to tell (235 moments, 34.8%)

The score drops 1.5 pawns or more, but at ply 10 of the best line the material sum is still below a pawn. The mistake is real (the engine says so) and the punishment is a plan, not a sequence: a piece gets stuck, a pawn walks in, the king stays open, the queen is pushed around. Akshat's headline "+2 for black" cannot be written, and "let's see how" has no end. Examples, sorted by the size of the engine advantage:

0f1fe5e6 move 5 · black, opponent's move · mistake Rh2 · positional · net 0 at ply 10

Position after the mistake: 1k3r2/1b4Q1/2p2rBp/p1Pp4/5P2/P6q/7R/3R3K b - - 3 39
Engine: best 1256 cp for the punisher; line used 1256 cp (candidate 1).

Line with running material (punisher's view): Qf3+0 Rg20 Qxd1++5 Kh2+5 Rxf4+6 Qe7+6 Qd4+6 Be4+6 Qxe4+9 Qxe40

Defender alternatives within 100 cp: ply 6: Qe7 shown, Qxh6 is 71 cp worse.

Text today: Here's how you win their rook on d1 from here. You found (Qf3+) here as well.

Steps today: Your queen moves (Qf3+). Their rook moves (Rg2). Your queen captures their rook (Qxd1+). Their king moves (Kh2). Your rook captures their pawn (Rxf4).

e86c4536 move 31 · white, your move · mistake Kxc2 · positional · net 0 at ply 4

Position after the mistake: 8/6pp/8/8/1p1k3P/1r6/2K3P1/2R5 b - - 0 47
Engine: best 721 cp for the punisher; line used 721 cp (candidate 1).

Line with running material (punisher's view): Rc3+0 Kb20 Rxc1+5 Kxc10 h50 Kd20 Ke40 Ke20

Defender alternatives within 100 cp: ply 2: Kb2 shown, Kd1 is as good or better.

Text today: You don't lose a piece right away, but after their reply (Rc3+), this is the line to watch. Along the way the rooks get traded.

Steps today: Their rook moves (Rc3+). Your king moves (Kd2). Their rook captures your rook (Rxc1). Your king captures their rook (Kxc1). Their king moves (Kc3).

43438124 move 32 · white, opponent's move · mistake Qf6 · positional · net 0 at ply 2

Position after the mistake: 8/8/3Q1qk1/5p2/8/P7/7P/7K w - - 2 56
Engine: best 709 cp for the punisher; line used 709 cp (candidate 1).

Line with running material (punisher's view): Qxf6++9 Kxf60 a40 Ke50 Kg20 Ke40 a50 Kf40

Text today: After the reply shown (Qxf6+), they end up worse off than they had to be. With the queens traded, your extra material decides the game.

Steps today: Your queen captures their queen (Qxf6+). Their king captures your queen (Kxf6).

43438124 move 26 · white, opponent's move · mistake Qg5 · positional · net 0 at ply 8

Position after the mistake: 8/7k/Q4p2/6q1/8/P7/7P/7K w - - 1 53
Engine: best 677 cp for the punisher; line used 677 cp (candidate 1).

Line with running material (punisher's view): Qd3+0 Kh60 Qh3+0 Kg70 Qg20 Kh60 Qxg5++9 Kxg50

Defender alternatives within 100 cp: ply 2: Kh6 shown, f5 is as good or better; ply 4: Kg7 shown, Kg6 is as good or better; ply 6: Kh6 shown, Kg6 is as good or better; ply 8: Kxg5 shown, fxg5 is 97 cp worse.

Text today: They don't lose a piece right away, but after the natural reply (Qd3+), you end up with the better position. It puts their king in check. In the game you played (Qa7+), so you missed this one too.

Steps today: Your queen moves (Qd3+). Their king moves (Kh6). Your queen moves (Qh3+). Their king moves (Kg6).

43438124 move 30 · white, opponent's move · mistake f5 · positional · net 0 at ply 3

Position after the mistake: 8/8/6k1/5pq1/3Q4/P7/7P/7K w - - 0 55
Engine: best 676 cp for the punisher; line used 676 cp (candidate 1).

Line with running material (punisher's view): Qg10 Qxg1+-9 Kxg10 Kf70 a40 Ke60 h40 Ke50

Defender alternatives within 100 cp: ply 2: Qxg1+ shown, Kh6 is as good or better.

Text today: They don't lose a piece right away, but if you find (Qg1), they end up worse off than they had to be. It offers a queen trade. In the game you played (Qd6+), so you missed this chance as well.

Steps today: Your queen moves (Qg1).

43438124 move 28 · white, opponent's move · mistake Kg6 · positional · net 0 at ply 4

Position after the mistake: 8/Q7/5pk1/6q1/8/P7/7P/7K w - - 3 54
Engine: best 675 cp for the punisher; line used 675 cp (candidate 1).

Line with running material (punisher's view): Qg10 Kf50 Qxg5++9 Kxg50 a40 Kf40 Kg20 Ke40

Defender alternatives within 100 cp: ply 2: Kf5 shown, Kh6 is as good or better; ply 4: Kxg5 shown, fxg5 is 77 cp worse.

Text today: They don't lose a piece right away, but after the natural reply (Qg1), you end up with the better position. It offers a queen trade. In the game you played (Qd4), so you missed this chance as well.

Steps today: Your queen moves (Qg1).

6.2 The best line gives material away (102 moments)

Here the punisher is down material at ply 10 of the best line and still winning on the engine score. A material headline would be wrong by sign. These are attack or bind positions; the honest sentence is about the king or about a piece that cannot move, not about a sum.

4dface4d move 6 · white, opponent's move · mistake Qh2+ · positional · net -4 at ply 10

Position after the mistake: 6k1/1p3pp1/5B2/R6p/2PQ4/6KP/5PPq/7r w - - 1 33
Engine: best 911 cp for the punisher; line used 911 cp (candidate 1).

Line with running material (punisher's view): Kf30 Qb80 Rg50 g60 Rd50 Re10 Bh80 Re50 Qxe5+5 Qxe5-4

Defender alternatives within 100 cp: ply 4: g6 shown, Qf8 is as good or better.

Text today: They don't lose a piece right away, but after your reply (Kf3), this is the line to watch. It leaves your bishop on f6 where they can take it, but even if they take it, you stay winning. Players usually take it here. And (Kf3) is exactly what you played. Well done.

Steps today: Your king moves (Kf3).

320a18fe move 12 · black, your move · mistake b5 · positional · net -7 at ply 8

Position after the mistake: 4q1k1/p7/2b1PBpp/1p2Q3/8/P6P/6P1/7K w - - 0 35
Engine: best 548 cp for the punisher; line used 548 cp (candidate 1).

Line with running material (punisher's view): Qd60 Bxg2+-1 Kxg2+2 Qa8++2 Kf2+2 Qe8+2 Qd7+2 Qxd7-7

Defender alternatives within 100 cp: ply 8: Qxd7 shown, Qf8 is as good or better.

Text today: You don't lose a piece right away, but if they find (Qd6), you end up worse off than you had to be. It puts pressure on your bishop.

Steps today: Their queen moves (Qd6). Your queen moves (Qa8). Their king moves (Kh2). Your pawn moves (g5). Their bishop moves (Bc3). Your queen moves (Qb7). Their queen moves (Qd8+). Your king moves (Kh7).

dceffae1 move 8 · black, your move · mistake Qe6 · positional · net -1 at ply 8

Position after the mistake: 8/5pk1/r3q1p1/2n1P2p/8/5NP1/2Q2PKP/3R4 w - - 3 33
Engine: best 509 cp for the punisher; line used 509 cp (candidate 1).

Line with running material (punisher's view): Qxc5+3 Qb6+3 Qxb6+12 Rxb6+3 Rd7+3 Re6+3 Rxf7++4 Kxf7-1

Defender alternatives within 100 cp: ply 2: Qb6 shown, Qc6 is as good or better; ply 6: Re6 shown, Kg8 is 17 cp worse; ply 8: Kxf7 shown, Kg8 is as good or better.

Text today: The problem is your knight. It can be taken, and you can't save it.

Steps today: Their queen captures your knight (Qxc5).

9e2e0f28 move 14 · white, opponent's move · mistake g5 · positional · net -1 at ply 10

Position after the mistake: r6k/2R5/P4p1p/1B2n1p1/8/4P2P/6PK/8 w - - 0 40
Engine: best 506 cp for the punisher; line used 506 cp (candidate 1).

Line with running material (punisher's view): Kg10 h50 a70 h40 Kf20 Kg80 Ke20 Kf80 Kd20 Rxa7-1

Defender alternatives within 100 cp: ply 2: h5 shown, g4 is 1 cp worse; ply 4: h4 shown, Kg8 is 3 cp worse; ply 6: Kg8 shown, Rf8 is 6 cp worse; ply 8: Kf8 shown, Rd8 is 8 cp worse.

Text today: They don't lose a piece right away, but after the natural reply (a7), this is the line to watch. It pushes your passed pawn to a7. In the game you played (Re7). That still keeps you winning — the line shown is another strong option.

Steps today: Your pawn moves (a7).

6.3 Slow material (170 moments)

The gain is real, but the payoff comes after 7 to 10 plies, or the trading is still going on at ply 9-10 so the sum cannot be trusted. Told in Akshat's format that is 4 to 5 move pairs, each with a purpose sentence; the user is past the "3-4 steps" limit before the point lands.

22551a7e move 9 · white, your move · mistake Qg4 · material-long · net +10 at ply 9

Position after the mistake: 1r5k/2q3pp/3b2b1/4n3/p2N2Q1/p3B3/B1PR2PP/2K5 b - - 5 32
Engine: best 4636 cp for the punisher; line used 4636 cp (candidate 1).

Line with running material (punisher's view): Qc30 Kd10 Nxg4+9 Bg5+9 Qa1++9 Ke2+9 Qh1+9 Bh4+9 Qxg2++10

Defender alternatives within 100 cp: ply 2: Kd1 shown, Nb3 is as good or better; ply 4: Bg5 shown, Nf5 is as good or better; ply 8: Bh4 shown, Bd5 is as good or better.

Text today: From here they have a way to win your queen. The line ends with their bishop on d6 where you can take it, but even if you take it, they stay winning.

Steps today: Their queen moves (Qc3). Your knight moves (Nb3). Their queen moves (Qb2+). Your king moves (Kd1). Their knight captures your queen (Nxg4).

32214e5a move 11 · white, your move · mistake Bxf7+ · material-long · net +2 at ply 7

Position after the mistake: 5rk1/1QR2Bp1/5q1p/5b2/P7/6P1/3p1PKP/3r4 b - - 0 27
Engine: best 4438 cp for the punisher; line used 4295 cp (candidate 2).

Line with running material (punisher's view): Qxf7+3 Rxf7-6 Rg1+-6 Kxg1-11 d1=Q+-3 Kg2-3 Rxf7+2 Qa8++2

Text today: You don't lose a piece right away, but after their reply (Kh8), this is the line to watch.

Steps today: Their king moves (Kh8).

296f611c move 33 · white, your move · mistake Kc2 · material-long · net +10 at ply 9

Position after the mistake: 6r1/3PQ3/5p1k/1p6/p7/2P1R3/2K5/5q2 b - - 5 57
Engine: best 4396 cp for the punisher; line used 4396 cp (candidate 1).

Line with running material (punisher's view): Rg2+0 Re20 Rxe2++5 Qxe20 Qxe2++9 Kc1+9 Qd3+9 d8=B+7 Qxd8+10

Defender alternatives within 100 cp: ply 8: d8=B shown, d8=R is as good or better.

Text today: From here they have a way to win your queen. Along the way the rooks get traded.

Steps today: Their rook moves (Rg2+). Your rook moves (Re2). Their rook captures your rook (Rxe2+). Your queen captures their rook (Qxe2). Their queen captures your queen (Qxe2+). Your king moves (Kc1).

dde70c79 move 1 · black, opponent's move · mistake g3 · material-long · net +7 at ply 7

Position after the mistake: 1Q6/6pk/1p1r1pq1/7p/P6n/6PP/1B3P2/4R1K1 b - - 0 36
Engine: best 4080 cp for the punisher; line used 4080 cp (candidate 1).

Line with running material (punisher's view): Nf3+0 Kh10 Nxe1+5 Qb7+5 Rd1+5 Bxf6+4 Qxf6+7 Qe4++7

Defender alternatives within 100 cp: ply 2: Kh1 shown, Kf1 is as good or better; ply 4: Qb7 shown, Qa8 is 43 cp worse.

Text today: Here's how you win their rook from here. In the game you played (Rc6) instead, so you missed this chance. Remember it for next time.

Steps today: Your knight moves (Nf3+). Their king moves (Kf1). Your queen moves (Qd3+). Their rook moves (Re2). Your rook moves (Re6). Their bishop moves (Bc3). Your queen captures their rook (Qxe2+).

6.4 Long mates (43 moments)

3a872207 move 6 · black, your move · mistake Qe6 · mate-long · net +14 at ply 7 · mate in 4

Position after the mistake: r4r2/2p2k2/4q3/b7/PpQ1pB1N/5PP1/6K1/R2R4 w - - 1 36
Engine: best 9996 cp for the punisher; line used 9996 cp (candidate 1).

Line with running material (punisher's view): Rd7+0 Kg80 Qxe6++9 Rf7+9 Qxf7++14 Kh8+14 Qg7#+14

Defender alternatives within 100 cp: ply 2: Kg8 shown, Kf6 is 1 cp worse; ply 4: Rf7 shown, Kh8 is 1 cp worse.

Text today: The real problem is your king. This line ends in checkmate.

Steps today: Their rook moves (Rd7+). Your king moves (Kg8). Their queen captures your queen (Qxe6+). Your rook moves (Rf7). Their queen captures your rook (Qxf7+). Your king moves (Kh8). Their queen moves (Qg7#).

50570619 move 13 · white, your move · mistake Nh4 · mate-long · net +1 at ply 7 · mate in 4

Position after the mistake: 8/5ppk/1p3q1p/7R/4r2N/2P4P/5PP1/6K1 b - - 1 33
Engine: best 9996 cp for the punisher; line used 9996 cp (candidate 1).

Line with running material (punisher's view): Re1+0 Kh20 Qf4+0 g30 Qxf2++1 Ng2+1 Qg1#+1

Text today: The real problem is your king. This line ends in checkmate.

Steps today: Their rook moves (Re1+). Your king moves (Kh2). Their queen moves (Qf4+). Your pawn moves (g3). Their queen captures your pawn (Qxf2+). Your knight moves (Ng2). Their queen moves (Qg1#).

755cf772 move 3 · white, your move · mistake Rxc5 · mate-long · net +19 at ply 7 · mate in 4

Position after the mistake: 5rk1/5ppp/1q1NR1n1/2Rn4/8/P4Q2/5PPP/6K1 b - - 0 31
Engine: best 9996 cp for the punisher; line used 9996 cp (candidate 1).

Line with running material (punisher's view): Qb1+0 Rc10 Qxc1++5 Qd1+5 Qxd1++14 Re1+14 Qxe1#+19

Defender alternatives within 100 cp: ply 2: Rc1 shown, Qd1 is 1 cp worse; ply 4: Qd1 shown, Re1 is 1 cp worse.

Text today: The real problem is your king. This line ends in checkmate.

Steps today: Their queen moves (Qb1+). Your rook moves (Rc1). Their queen captures your rook (Qxc1+). Your queen moves (Qd1). Their queen captures your queen (Qxd1+). Your rook moves (Re1). Their queen captures your rook (Qxe1#).

6.5 The defender has an equal road inside the told line (132 of the 228 fitting moments)

The format tells one road. When the defender has a second move within 100 cp at some ply, the told step is a choice, not a fact. The conclusion can still be true (both roads lose the same material), but the sentence "the pawn captures back" is then wrong half the time. The alternatives below were found at depth 14; section 2 shows one such gap (8 cp) growing to 174 cp at depth 32, so some of these disappear at production depth, and the count is an upper bound. Examples:

10c52892 move 4 · black, your move · mistake Rxa4 · material-short · net +5 at ply 6

Position after the mistake: 5rk1/6bp/5np1/2pq4/r1Np4/8/1PQ2PPP/2BR2K1 w - - 0 25
Engine: best -90 cp for the punisher; line used -90 cp (candidate 1).

Line with running material (punisher's view): Qxa4+5 Ng4+5 f3+5 Ne5+5 Nxe5+8 Bxe5+5 Bh6+5 Ra8+5

Defender alternatives within 100 cp: ply 2: Ng4 shown, h5 is 37 cp worse; ply 4: Ne5 shown, Nh6 is 66 cp worse; ply 6: Bxe5 shown, Qxe5 is 70 cp worse.

Text today: After their reply (Qxa4), your clear advantage shrinks to a small edge. Along the way they take your rook.

Steps today: Their queen captures your rook (Qxa4).

eefc0949 move 2 · black, your move · mistake Rxf1+ · material-short · net +4 at ply 6

Position after the mistake: 5rk1/5p1p/4p1p1/8/1QP4b/1P2qB2/6PP/4Rr1K w - - 0 34
Engine: best -137 cp for the punisher; line used -137 cp (candidate 1).

Line with running material (punisher's view): Rxf1+5 Rd8+5 g3+5 Bf6+5 Qe1+5 Qxb3+4 c5+4 Qa2+4

Defender alternatives within 100 cp: ply 2: Rd8 shown, Qd3 is 10 cp worse; ply 4: Bf6 shown, Bg5 is 52 cp worse; ply 6: Qxb3 shown, Qxe1 is 24 cp worse.

Text today: After their reply (Rxf1), you end up worse off than you had to be. Along the way they take your rook.

Steps today: Their rook captures your rook (Rxf1).

95de674b move 11 · white, your move · mistake Nb5 · material-short · net +5 at ply 6

Position after the mistake: 3r2k1/2r4p/7p/1N3p2/2Pbp3/4RP1P/6P1/1R4K1 b - - 2 29
Engine: best 535 cp for the punisher; line used 535 cp (candidate 1).

Line with running material (punisher's view): Bxe3++5 Kh1+5 Rcd7+5 Nc3+5 exf3+6 gxf3+5 Kh8+5 Nd5+5

Defender alternatives within 100 cp: ply 2: Kh1 shown, Kf1 is as good or better; ply 4: Nc3 shown, fxe4 is 22 cp worse; ply 6: gxf3 shown, Nd5 is 6 cp worse.

Text today: The problem is your rook on e3. It can be taken, and you can't save it.

Steps today: Their bishop captures your rook (Bxe3+). Your king moves (Kh2). Their rook captures your pawn (Rxc4).

50570619 move 4 · white, opponent's move · mistake Nh4 · material-short · net +2 at ply 6

Position after the mistake: 1r4k1/5pp1/1p3q1p/1R3N2/7n/2P1Q2P/5PP1/6K1 w - - 8 29
Engine: best 432 cp for the punisher; line used 432 cp (candidate 1).

Line with running material (punisher's view): Qg30 Ra80 Nxh4+3 Ra3+3 Rf5+3 Qxc3+2 Qb8++2 Kh7+2

Defender alternatives within 100 cp: ply 2: Ra8 shown, Re8 is 21 cp worse; ply 4: Ra3 shown, Ra1+ is as good or better; ply 6: Qxc3 shown, Qe6 is as good or better.

Text today: Here's how you win their rook from here. In the game you played (Ne7+) instead, so you missed this chance. Remember it for next time.

Steps today: Your queen moves (Qg3). Their knight captures your pawn (Nxg2). Your queen captures their rook (Qxb8+).

4404aa82 move 1 · white, your move · mistake Rxg7+ · material-short · net +5 at ply 6

Position after the mistake: 6k1/1r4R1/4pq2/p2b4/2pPp3/2P1Q3/Pr1B2RP/4N1K1 b - - 0 39
Engine: best 453 cp for the punisher; line used 453 cp (candidate 1).

Line with running material (punisher's view): Rxg7+5 a4+5 Rb7+5 h3+5 Rxg2++10 Kxg2+5 Rg7++5 Kh2+5

Defender alternatives within 100 cp: ply 2: a4 shown, a3 is 6 cp worse; ply 4: h3 shown, Bc1 is as good or better; ply 6: Kxg2 shown, Nxg2 is as good or better.

Text today: The problem is your rook on g7. It can be taken.

Steps today: Their rook captures your rook (Rxg7).

6.6 The sum is right and the game is not (51 of the 228 fitting moments)

The line wins material, so the headline "it costs you a rook" is true, but the engine score says something else. In 12 moments the punisher is still losing after the line (score below −50 cp for the punisher): the mistake made a lost game less lost for the other side, and "they can't get it back" would be false. In 39 moments the score after the line is under 150 cp: the material comes with a worse position, and "net +1" oversells a pawn the engine rates as almost nothing. These are the cases where Akshat's closing sentence needs the engine, not the board.

4826a62d move 21 · black, opponent's move · mistake Qxh8 · material-short · net +1 at ply 1

Position after the mistake: 7Q/1p2k3/3q2p1/3P1p2/5P1P/8/8/3R2K1 b - - 0 49
Engine: best -621 cp for the punisher; line used -647 cp (candidate 2).

Line with running material (punisher's view): Qxf4+1 Re1++1 Kd7+1 Qe8++1 Kc7+1 Qe7++1 Kc8+1 Qe6++1

Text today: Here's the line that was open to you. In the game you again went your own way with (Qxf4).

Steps today: Your king moves (Kf7).

Template text (from board + line, prototype): Qxh8 was a mistake. It costs them a pawn: net +1 for you. Let's see how.

  1. Your queen takes their pawn (Qxf4). Net +1 for you.

They can't get it back.

The template headline is true and the closing sentence is false: the engine score after the line is still against the punisher.

e86c4536 move 16 · white, opponent's move · mistake Rxe1 · material-short · net +5 at ply 1

Position after the mistake: 5rk1/6pp/8/4R3/1p6/1P5P/2p3PK/4r3 w - - 0 40
Engine: best -446 cp for the punisher; line used -446 cp (candidate 1).

Line with running material (punisher's view): Rxe1+5 Rc8+5 Rc1+5 Rc3+5 Kg1+5 Kf7+5 Kf2+5 Ke6+5

Text today: After your reply (Rxe1), part of their advantage slips away. Along the way you take their rook. It moves your rook out of the rook's attack. And you played (Rxe1) in the game as well.

Steps today: Your rook captures their rook (Rxe1).

Template text (from board + line, prototype): Rxe1 was a mistake. It costs them a rook: net +5 for you. Let's see how.

  1. Your rook takes their rook (Rxe1). Net +5 for you.

They can't get it back.

The template headline is true and the closing sentence is false: the engine score after the line is still against the punisher.

e86c4536 move 8 · white, opponent's move · mistake Qxe5+ · material-short · net +9 at ply 5

Position after the mistake: 5rk1/6pp/8/4q3/1p6/1Pp4P/4RrPK/4R3 w - - 0 36
Engine: best -437 cp for the punisher; line used -437 cp (candidate 1).

Line with running material (punisher's view): Rxe5+9 Rf1+9 R5e2+9 Rxe1+4 Rxe1+9 Kf7+9 Kg3+9 Rd8+9

Defender alternatives within 100 cp: ply 2: Rf1 shown, Rd8 is 43 cp worse; ply 4: Rxe1 shown, h6 is as good or better.

Text today: After your reply (Rxe5), this is the line to watch. Along the way you take their queen. And (Rxe5) is exactly what you played. Well done.

Steps today: Your rook captures their queen (Rxe5).

Template text (from board + line, prototype): Qxe5+ was a mistake. It costs them a queen and a rook for a rook: net +9 for you. Let's see how.

  1. Your rook takes their queen to stop the check (Rxe5). Net +9 for you.
  2. Their rook moves (Rf1). It attacks your rook.
  3. Your rook moves (R5e2).
  4. Their rook takes your rook (Rxe1). Net +4 for you.
  5. Your rook takes back (Rxe1). Net +9 for you.

They can't get it back.

The template headline is true and the closing sentence is false: the engine score after the line is still against the punisher.

43c0059c move 4 · white, opponent's move · mistake Qxb2 · material-short · net +2 at ply 6

Position after the mistake: 5rk1/5p2/p4Ppb/1pB1P1N1/8/4Q3/bq6/2R3K1 w - - 0 31
Engine: best -43 cp for the punisher; line used -43 cp (candidate 1).

Line with running material (punisher's view): Ba30 Qb30 Qxb3+9 Bxb30 Bxf8+5 Bxg5+2 Rc8+2 Kh7+2

Defender alternatives within 100 cp: ply 6: Bxg5 shown, Bxf8 is 52 cp worse.

Text today: They don't lose a piece right away, but if you find (Ba3), attacking their queen, they end up worse off than they had to be. It leaves your bishop on a3 where they can take it, but your queen guards a3, so the trade loses material for them. In the game you played (Bxf8), so you missed this one too.

Steps today: Your bishop moves (Ba3).

Template text (from board + line, prototype): Qxb2 was a mistake. It costs them a queen and a rook for a queen and a knight: net +2 for you. Let's see how.

  1. Your bishop moves (Ba3). It attacks their queen and their rook at the same time.
  2. Their queen moves (Qb3). It attacks your queen and your bishop at the same time.
  3. Your queen takes their queen (Qxb3). Net +9 for you.
  4. Their bishop takes back (Bxb3). Net 0 for you.
  5. Your bishop takes their rook (Bxf8). Net +5 for you.
  6. Their bishop takes your knight (Bxg5). It attacks your rook. Net +2 for you.

They can't get it back.

The sum is positive, the score is near zero: the material is paid for by position.

0b5acbb6 move 12 · white, opponent's move · mistake Qxf2+ · material-short · net +8 at ply 4

Position after the mistake: 6k1/p7/5pP1/1p3P2/2p5/7r/PP3qR1/5K2 w - - 0 41
Engine: best 0 cp for the punisher; line used -37 cp (candidate 2).

Line with running material (punisher's view): Kxf2+9 Rh5+9 Ke3+9 Rxf5+8 Rh2+8 b4+8 Rh7+8 Rc5+8

Defender alternatives within 100 cp: ply 2: Rh5 shown, c3 is 48 cp worse; ply 4: Rxf5 shown, Rh1 is 69 cp worse.

Text today: After the reply shown (Rxf2), their edge fades and the game levels out. Along the way you take their queen. In the game you handled it your own way with (Kxf2), and it worked.

Steps today: Your rook captures their queen (Rxf2).

Template text (from board + line, prototype): Qxf2+ was a mistake. It costs them a queen for a pawn: net +8 for you. Let's see how.

  1. Your king steps out of check (Kxf2). Net +9 for you.
  2. Their rook moves (Rh5).
  3. Your king moves (Ke3).
  4. Their rook takes your pawn (Rxf5). Net +8 for you.

They can't get it back.

The sum is positive, the score is near zero: the material is paid for by position.

11cc68ba move 4 · black, your move · mistake g5 · material-short · net +1 at ply 1

Position after the mistake: 5r1r/7k/5p2/5Pp1/p1QP2P1/4q2p/5R1P/5RK1 w - g6 0 35
Engine: best 7 cp for the punisher; line used -34 cp (candidate 2).

Line with running material (punisher's view): Qxa4+1 Re8+1 Qd7++1 Re7+1 Qd5+1 Kg7+1 Rd1+1 Qc3+1

Text today: You don't lose a piece right away, but if they find (fxg6+), you end up worse off than you had to be. It puts your king in check.

Steps today: Their pawn captures your pawn (fxg6+). Your king captures their pawn (Kxg6).

Template text (from board + line, prototype): g5 was a mistake. It costs you a pawn: net +1 for them. Let's see how.

  1. Their queen takes your pawn (Qxa4). Net +1 for them.

You can't get it back.

The sum is positive, the score is near zero: the material is paid for by position.

Branches are not the failure; unproven conclusions areA branch inside the line does not break the format when every defender road loses the same material or more. It breaks the format when one road loses less: then the headline sum is a guess. The headline number must be the minimum over the defender's near-equal roads, and the told road must be labelled as one road ("if the pawn takes back") when another road is as good.

7. Akshat's rules, one by one, with counterexamples

Rule from the Slack threadHolds whenCounterexample
"It leads to black getting a rook and a pawn in exchange for a knight and a pawn, so +2." Headline = material sum.33.7% of moments: a stable capture sequence exists within 6 plies.Section 6.1: 235 moments with no capture in 10 plies. Section 6.2: 102 moments where the sum is negative and the position is still won.
"3-4 steps", one path.Payoff or mate within 6 plies.Section 6.3 and 6.4: 213 moments need 7 to 10 plies. Cutting them at 6 plies leaves the sum unstated or wrong.
"Genius knight sacrifice", "forks the king and the rook": every step has a purpose.The purpose is a board fact of the moved piece: capture, check, sacrifice, fork, escape, payoff.Quiet moves in the line (a retreat, a pawn push that prepares something two moves later) have no board fact on the ply they are played. In section 6.1 most plies are like this. The template writes "Your knight moves (Ne3)." for them, which is today's text again.
"The pawn captures back." The defender's reply is a fact.The defender's reply is forced (in check with one escape, or the only move that does not lose more).At depth 14 the checker calls 31.Rg1+ as good as 31.fxe4 and 32.Kg4 within 12 cp of 32.Kg3; at depth 32 neither holds (174 cp gap; Kg4 is mated). 132 of the 228 fitting moments have such a ply at depth 14; the true count needs production depth. Where the second road is real, the told step is a choice, not a fact.
"White can't force a recovery."The engine score after the best defence stays large.Any line chosen for shortness rather than strength: the chosen reply is 24 cp below the best reply in the Kxh4 case, which is fine, but in 53 fitting moments the told line is not the engine's first choice and the closing sentence must be checked on that line, not on the first one.
"+2" counted from before the mistake.The zero point is stated.Same line counted from after the mistake is +3. Two readers with two zero points get two numbers. The story must pick one and keep it for the whole line.
"Then at the end, the (max) 3 most common branches, only if they have decent human probability."A human-move model is available at generation time.The generator has engine scores only. The checker uses "within 100 cp" as a stand-in; that is not human probability. In the Kxh4 case the human move (Kxh4, 85% per the Slack engine session) is the engine's worst, and the best reply Nxe4 is played by 3.6% of humans. Engine gaps and human roads are different lists.
"After that, we can get into the correct move."The correct move has its own short line.The correct move often has no line at all: it is the move that avoids the loss, and the engine line after it is quiet. Today's text for it is "This keeps the game even instead of letting them take over." in 79 of 333 correct-move scenes. The same "no sum to tell" problem as section 6.1, on the other side.

8. What must change

Change 1: pick the line to tell, not the first lineSearch MultiPV 6 from the position after the mistake. For each candidate, walk the line 10 plies and find the payoff ply: the last ply where the material sum changes, with at least two quiet plies after it. Choose the candidate with the earliest payoff and a sum of at least a pawn (or a forced mate) among candidates within 150 cp of the best. Keep the engine's first line for the score claims. Code: replace the single-line replay in getLineMoves with a candidate list from the engine input; the story input already carries engine facts per position.
Change 2: stop at the payoff, not at the forcing coreShow the line up to the payoff ply and no further. Drop trimMovesToForcingCore for punishment and ideal-response scenes. The last shown step carries the closing sentence.
Change 3: headline = the sum, with the pieces named"Kxh4 was a mistake. It costs you a rook and a pawn for a knight: net +3 for them. Let's see how." The pieces come from the captures up to the payoff; the number is the sum. One zero point: the position after the mistake. When the defender has a near-equal road (change 5) the number is the minimum over the roads.
Change 4: step text with purpose and running sumReplace moveStepText output with: capture ("takes the pawn"), sacrifice ("the knight can be taken"), check, fork ("attacks the king and the rook at the same time"), king out of check, and "Net +n" whenever the sum changes. The prototype on this page does this with about 60 lines; the generator already has the fork and attack detectors.
Change 5: prove the closing sentence on every defender roadAt every defender ply inside the told line, take the defender's top two moves. If the second is within 100 cp, walk its line too and take the minimum stable gain. "They can't get it back" is written only when the minimum is at least a pawn. Otherwise the step is written as a road: "If the pawn takes back, ...". Branches themselves go to the chat, as agreed in Slack.
Change 6: a rule ladder for the moments the format cannot tellIn this order: (1) mate in 3 or less: mate line. (2) payoff within 6 plies: the format above. (3) payoff within 8 plies: the same format with the headline "it takes a few moves" and the full line. (4) no stable gain: headline names one verified board fact about the position after the reply (piece attacked and undefended, king without pawn cover, passed pawn on the 6th or beyond, piece with no safe square); show the reply only; the "why" goes to the chat. (5) nothing verifiable: say the score drop in plain words and stop. Delete the fallback sentences "Here's the line that was open to", "have a way to win material", "the better position", "keeps the game even".
Change 7: do not drop the user's mistake when the opponent also erredThe Kxh4 story lost the Kxh4 mistake because move 10 was spent on the opponent's gxh4+ and the missed Kg2. When the same move pair holds an opponent mistake and a user mistake with a bigger score drop, the user's mistake gets the scene.
Change 8: the correct move gets the same treatmentAfter the mistake line, the correct move is told with the same ladder: its short line and sum when there is one, one verified board fact when there is not. "This keeps the game even" is deleted.
What does not changeThe scene structure (mistake, consequence, correct move), the engine input, the claim audit. The audit gets new claim types: sum, sacrifice, fork, out-of-check, closing sentence.

9. How the numbers were made, and limits

Script: ai-workspace/game-story-prod-review/deva-format/line-check.mjs. Input: regen/eval-r27/*.json (120 stories, the round-27 regenerated set). For each scene of kind mistake, slight-miss, opponent-mistake or opponent-slight-miss followed by a consequence scene, the checker takes the consequence scene's FEN (position after the mistake) and runs Stockfish 17, MultiPV 6, depth 18, 6 threads. For the chosen line it runs MultiPV 6, depth 14 at every defender ply up to the payoff (at most 8 plies) to find near-equal alternatives. The payoff ply is the last ply inside the 10-ply window where the material sum changes; a change on ply 9 or 10 is not trusted (the trade may go on) and the line is put in material-long. Material values 1/3/3/5/9. Output: deva-format/line-check-r27.jsonl, one row per moment.

Limits. Depth 18 is below production depth; a few lines will differ at higher depth. "Within 100 cp" stands in for human probability; a human-move model was not run. The template narration is a prototype and has no claim audit behind it; its sentences were checked by hand only for the examples shown in section 2 and section 5. The payoff rule ignores positional compensation, so a few "material-short" moments would be told with a true sum and a wrong feeling (the defender gets an attack for the material); the engine score of the chosen line is shown on every example so those can be seen (a chosen score far below the best score is the sign).