Offline experiment · 32 decodechess.com pages fetched with Playwright, catalogued by Codex inside the research jail · fact generator ai-workspace/game-story-prod-review/regen/decode-facts.mjs on the production rules · chess.js only, no engine call · round 2, 2026-09-04

What DecodeChess explains, and which of our 58 pending moments its fact types can explain better than the story does today

1. How DecodeChess works, in its own words

Short version: it is not a language model. It is a rule and concept engine that runs Stockfish 12 NNUE hundreds of times per position at several depths, lists every fact it can prove from those runs (attack, defence, intention, prevented move, plan), and shows them all with an importance bar. One position takes 15 to 30 seconds (Decode Game) or up to 70 seconds (Deep Decode) on their servers. Our story has a 6-ply line per move and a few seconds.

2. The 59 explanation types it names

idtypeexample wordinginputs it needs
E1Why the engine's recommended next move is good“the reasoning behind the next best move”Position, side to move, Stockfish recommendation and continuation
E2Reasons and concepts behind every move in the recommended best line“explanations for the best next moves, up to seven plies”Position and multi-ply Stockfish principal variation
E3Advantages, benefits, or strengths of a move“benefits of the move in hand”Candidate move, before/after positions, continuations
E4Disadvantages or weaknesses caused by a move“the weaknesses of playing that move”Candidate move, before/after positions, continuations
E5Why the played move is a mistake or blunder“Explaining why a move is a mistake”Played move, engine-best move, evaluations and continuations
E6Why the played move is a good alternative despite not being first choice“an alternative move is good, although it’s not the first choice”Played move, engine alternatives, close evaluations and continuations
E7Other good moves and each move's best continuation“The ‘Good Moves’ tab now shows the best continuation for each good move.”Ranked candidate moves and principal variation for each
E8A player's or piece's intention“Opponent intentions”Position, side, legal continuations and threats
E9Attacking plan“attacking plans”Position, candidate continuations, targets and attack relations
E10The Idea in the Idea-Problem-Solution framework“an instructional framework to guide you on how to find the best move”Position, strategic/tactical goal and best line
E11The Problem obstructing an idea“Playing (xx) before (xx) solves the problem”Intended move, obstacle or threat, move order
E12The Solution or preparatory move that permits the plan“and now white can execute their plan”Idea, obstacle, preparatory move and resulting continuation
E13Move-order requirement: play one move before another“has to play (xx)s first in order to remove a supporter”Intended move, prerequisite move, defender/support map
E14Why a plan fails“Black can play (xx) and now White’s plan fails”Plan line and opponent's refutation
E15Threats for both players“Identifying and Decoding the attacks of both players”Position, both sides' forcing continuations and attack maps
E16Per-piece threat and the different ways it can be carried out“different ways in which it poses a threat”Threatening piece, targets and legal continuations
E17Damage a threatening piece can cause, verbally and as variations“analysis of the type of damage this piece can cause”Threatening piece, target, evaluation and execution lines
E18How a threat undermines otherwise good moves“how the threats imposed by this piece undermine your good moves”Threat line and candidate good moves
E19Threat status before and after the recommended move“Analyzing threats before and after playing the recommended move”Position, best move, threat set and post-move evaluation
E20How the best move diminishes or solves a threat“shows you how the best move has diminished the threat”Threat, best move, before/after lines and evaluations
E21Prophylaxis: what a move prevents“prevents playing Bb5+ by guarding square b5”Opponent possibility, preventing move and controlled squares
E22Checkmate threat“As for the checkmate threat”Forcing line, king position and mate detection
E23Threatens or attacks a piece or pawn“preparing it for an attack on the unsupported b5 pawn”Attack map, target and defender/support status
E24Activates a piece“also activates the Knight”Piece mobility and intended route
E25Defends or supports a piece or pawn“supports the d5 pawn”Defender/support relations before and after the move
E26Guards or controls a square“the f8 rook protects its king by guarding square f7”Square-control map, king and tactical continuations
E27Protects the king“protects its king”King location, attack map and guarded squares
E28Avoids an exchange“avoid the knights’ exchange”Capture/exchange lines after the move
E29Creates pressure on a target“creates pressure on the b5 pawn”Attackers, defenders, target and continuation
E30Uses, gains, or denies control of a file“Black uses the open a file”File openness, rook access, exchanges and control
E31Enables a pawn push or pawn break“White can play e5”Pawn legality, support duties and continuation
E32Releases a piece from a defensive duty“releasing the e4 pawn from this duty”Piece/pawn function map before and after the move
E33Exposes or weakens the king“allow the exposure of the king”King shelter, captures and forcing continuation
E34Enables a check“the checking with the queen at h5”Checking move and enabling sequence
E35Piece functionality: the role of every piece“maps the role of each piece on the board”Full board, attacks, defenses, square control and king relations
E36Deflection“Deflection”Position, defender, target and forcing line
E37Fork“Fork”Position and one piece's simultaneous attacks
E38Lure/Decoy“Lure/Decoy”Position, induced destination and tactical continuation
E39Mate“Mates”Legal moves, king state and forcing lines
E40Draw“Draws”Legal moves, repetition/material state and terminal-state detection
E41Stalemate“Stalemates”Side to move, legal moves and check state
E42Pin“Pin”Aligned pieces, attacker and protected target behind
E43Remove a defender“Remove a defender”Target, defender/support map and forcing move
E44Sacrifice“Sacrifice”Material change, compensation and continuation
E45Shield“Shield”Interposing/protecting piece, target and attack line
E46Skewer“Skewer”Aligned targets, attacker and forced movement
E47X-ray“x-ray”Line-piece geometry and intervening pieces
E48Tempo“Identification of terms like decoy, deflection, tempo”Move sequence and gain/loss of time
E49Positional use or control of ranks, files, and diagonals“Using Ranks/Files/Diagonals”Board geometry, piece mobility and control maps
E50Pawn structure“Pawn Structure”Pawn locations, chains, weaknesses and mobility
E51Tactical and strategic motifs or position concepts“tactical and strategic motifs”Position, recognized chess-concept patterns and continuations
E52Causal relations between piece functions“Identification of causation relations in piece functionality”Function map across a move sequence
E53Annotated variation showing the chain of events behind an explanation“sequence of moves that represent the concept in hand”Explanation concept and generated move sequence
E54Multiple variations that produce the same explanatory outcome“more than one sequence of moves can usually bring the same outcome”Alternative continuations and shared outcome/concept
E55Counterfactual or “What if?” explanation“Had the (piece) still been on (XX)”Hypothetical board change and recalculated continuation
E56Numerical side advantage or equality“White’s decisive advantage in numerical and graphical representations”Engine evaluation by move and side
E57Move-quality label: good move, inaccuracy, mistake, or blunder“information per move (mistake, inaccuracy, good move, blunder)”Played move and centipawn loss from engine best
E58Opening variation identification and opening-move logic“information about the opening variations”Game move sequence and opening classification
E59Identification of notable positions and advantage swings“shows you exactly where each side dropped or picked an advantage”Whole game and evaluations after each move

3. Which of those we can produce from what we already have

fact typecan we make it?
gives check / matesyes, 1 ply
wins or takes a pieceyes, 1 ply
escapes captureyes, 1 ply, pin-aware
threatens a pieceyes, 1 ply; DecodeChess also proves the threat is real
defends a pieceyes, 1 ply
makes way for a later moveyes, from the 6-ply line
intends (next own moves)yes, from the 6-ply line; DecodeChess adds why those moves are good
prevents an opponent moveyes, when the move is illegal after the better move
offers a piece the capture of which failsyes, only as a flag; the why needs a deeper line
Idea-Problem-Solution planno; needs many engine runs
prophylaxis by square controlpartly; we can say which squares the move guards
activates a piece / uses a file / releases from dutyno; these are the DecodeChess concept checks
fork, pin, skewer, deflection, decoy, remove defender, x-raypin and fork are cheap; the rest need a verified line
counterfactual 'had the piece still been on'no

4. The numbers over the 58 pending moments

Pending moments58
Two or more concrete facts for the better move14
One fact, or facts only for the played move29
Only "intends"15

Round 2 (copy revision 32): the facts come from the production module libs/api/src/domain/zapp/game-story/board-facts.ts, ranked (pawn on the seventh > passed pawn > exchange count > threat > offered piece > escapes/defends > open file > undermines > prepares > queen trade under fire) and cut to one fact when the top fact is decisive, otherwise at most two of different kinds. In the live story a fact is added only when the line-based text has no material sentence, so the columns show what the rules produce, not always what the story prints. Check moves get no fact. The played-move column allows only: enemy passed pawn, enemy pawn on the seventh, gives up an open file, queen trade under fire.

Reading of the result: for the 14 green cases DecodeChess would say the same facts we can already compute, plus a proof that each threat is real. For the 29 amber cases it would add the reason behind the "intends" move, which we cannot prove from one line. For the 15 red cases neither side has a board fact; these are the plan, king-walk and pawn-race cases where DecodeChess's plan and counterfactual types (E10 to E14, E55) are the only thing that could explain them, and even those need its many-run verification.

5. Every pending moment with its DecodeChess-style facts

Paste the FEN into DecodeChess to compare. "fails" after a capture means the engine line does not play that capture, so the capture is refuted.

CaseSidePlayedBetterDropFacts for the better moveFacts for the played moveVerdict
1b858313 m31
positional-gives-material
8/6pk/5p1p/3Q4/8/7P/6PK/4q3 w - - 8 45
wQd4Qc4520--none
43b0c5fa m16
positional-no-material
6r1/4Q3/5pqk/pp6/3PR3/2P5/5P2/5K2 b - - 1 48
ba4Rg7130It also attacks your queen on e7.-thin
43b0c5fa m27
lines-too-short
6r1/4Q3/3P1p1k/1p3q2/p2KR3/2P5/5P2/8 w - - 3 54
wd7Qe6100It lets their f-pawn become a passed pawn.
It also attacks their rook on g8, which they cannot hold.
-facts
43b0c5fa m30
positional-gives-material
6r1/3PQ3/5p1k/1p6/p3R3/2PK4/5q2/8 b - - 1 55
bQf3+Rg3+114--none
1ee86237 m9
positional-gives-material
5k2/3Q1p1p/5p2/2p5/r7/5N2/1P4PP/3R2K1 w - - 0 26
wQxa4Ng5-It also attacks their pawn on h7, which they cannot hold.
It also attacks their pawn on f7, which nothing defends.
-facts
ce5469b0 m2
positional-no-material
1r2r3/5pkp/3Q2p1/q2P4/8/7P/P1R3PK/2R5 b - - 0 34
bRb5Rbd8113It also attacks their queen on d6, which nothing defends.
It gives up the open b-file.
-facts
aaf8f107 m4
last-move-no-reply
2r2rk1/5p1p/p5p1/q7/8/4R1P1/P4PBP/Q5K1 b - - 0 25
bRc7Rfe8109It also puts their rook on the open e-file.-thin
8d0b0f46 m7
last-move-no-reply
2b2rnk/2r4p/3q4/3P1p2/RpP1p2Q/4B1NP/1b1N2P1/5B1K w - - 0 39
wBf4Nh5187It also takes the sting out of (f4).-thin
67088156 m6
positional-no-material
r2r2k1/5pp1/7p/1B1q4/P2p4/5PPn/3Q2RP/5R1K b - - 4 33
bd3Rac8140It also puts your rook on the open c-file.-thin
67088156 m12
positional-gives-material
3r2k1/5ppB/7p/8/r7/5qPn/3Q2RP/3R3K b - - 1 36
bKh8Kxh7248It also makes (g6) possible next.-thin
9f68fbe5 m1
positional-gives-material
5rk1/1b1q2b1/6p1/5p2/1Np1p1P1/2P1B2P/1P3Q2/5RK1 w - - 0 36
wQh4Qg3226It also clears the way for (Rxf8+).It lets their f-pawn become a passed pawn.thin
9f68fbe5 m7
last-move-no-reply
5k2/1b1q2bQ/6p1/8/1Np1p3/2P1B2p/1P6/6K1 w - - 0 39
wBh6Kf2485It also takes the sting out of (h2+).
It also makes (Kg1) possible next.
-facts
4661effb m14
positional-no-material
4k3/p2r2bN/6P1/3q4/3P4/6NP/7K/3Q4 b - - 3 31
bBxd4Qa2+140It also clears the way for (Rxd4).-thin
4661effb m46
positional-gives-material
8/p1k1r3/1q1b2P1/3Q4/4N3/6NP/7K/8 b - - 31 47
bQb2+Bxg3+211--none
4661effb m49
positional-no-material
8/p1k1r3/6P1/3Q4/4N3/6bP/1q6/7K w - - 0 49
wQc5+Qc4+317It also clears the way for (Qg8+).-thin
4661effb m50
last-move-no-reply
8/p1k1r3/6P1/2Q5/4N3/6bP/1q6/7K b - - 1 49
bKd8Kb8251--none
60a3b89d m2
positional-gives-material
1b3rk1/3qr3/2p1p3/2Pp2P1/3Pbp2/1Q3B2/1B1R1P2/2R3K1 b - - 0 33
bBxf3e5103It also clears the way for (Qg4+).-thin
b8eb8d2e m4
positional-gives-material
5r1r/6pk/5p2/5P2/p1QP2P1/4q2p/5R1P/5RK1 b - - 2 34
bg5Rb8129It also puts your rook on the open b-file.-thin
1eb7a1d5 m10
positional-no-material
r6k/2R3p1/5p1p/1B2n3/P7/4P2P/6PK/8 b - - 0 37
bRd8Kg8122It also makes (Kf8) possible next.-thin
1eb7a1d5 m12
positional-no-material
3r3k/2R3p1/5p1p/PB2n3/8/4P2P/6PK/8 b - - 0 38
bRa8Rb8103It also attacks your bishop on b5, which nothing defends.
It also puts their rook on the open b-file.
It gives up the open d-file.facts
1eb7a1d5 m15
positional-gives-material
r6k/2R5/P4p1p/1B2n1p1/8/4P2P/6PK/8 w - - 0 40
wRe7a7121It puts your a-pawn on a7, one step from queening, so their rook must stay on a8.It gives up the open c-file.thin
bead1460 m5
positional-no-material
1r3rk1/5ppp/4p3/7B/1q2P2n/5Q1P/5RP1/3R3K w - - 1 31
wQf4Bxf7+208It also attacks your pawn on e6, which nothing defends.
It also protects their queen on f3.
-facts
bead1460 m11
positional-gives-material
1r3r1k/5p1p/4p3/6Qp/1q2P3/7P/5RP1/3R3K w - - 2 34
wQxh5Qe5+300It also clears the way for (Qg5+).It lets your e-pawn become a passed pawn.thin
7cda97b2 m1
positional-no-material
5rk1/5rpp/8/2q5/1pp5/7P/1PQ1RPP1/4R1K1 w - - 0 32
wb3Re4180It also attacks their pawn on c4, which they cannot hold.It lets their c-pawn become a passed pawn.thin
f55d277e m23
last-move-no-reply
5R2/7p/b1p5/p5p1/8/4k1PP/PP4K1/8 w - - 0 40
wKg1Re8+133It also puts your rook on the open e-file.-thin
94a9fa9c m1
positional-no-material
r3r3/5kb1/2N5/1p3p2/p1pP1q2/P1P5/1P4Q1/R3R1K1 w - - 0 37
wNe5+Qd5+194It also attacks your pawn on b5, which nothing defends.-thin
32f1cb86 m1
positional-no-material
1kr4r/ppp1n2p/8/8/3P1Q2/q3B3/P5PP/1RR3K1 w - - 4 24
wRc2Qe4175It also attacks your pawn on b7, which nothing defends.-thin
32f1cb86 m5
last-move-no-reply
1kr4r/ppp4p/8/4Q3/3P4/q3n3/P1R3PP/1R4K1 w - - 0 26
wRcb2Rxb7+329It also attacks your pawn on c7, which nothing defends.
It also protects their rook on c2.
-facts
bd4f3950 m13
positional-no-material
8/7p/4Q1pk/4P3/8/p5P1/1q3PKP/8 w - - 1 42
wQh3+Qe7141--none
fd99145d m19
positional-gives-material
7k/8/3bp3/6p1/5p2/5BNP/5K2/8 w - - 0 54
wNh5Ne4152It also attacks your pawn on g5, which you cannot hold.
It also attacks your bishop on d6, which nothing defends.
-facts
1962fb77 m4
positional-gives-material
1r4k1/6p1/8/RPqn4/2pp3p/5P1P/1Q2B1P1/6K1 b - - 0 32
bc3d3+125It also attacks their bishop on e2, which nothing defends.-thin
272bfb10 m2
positional-gives-material
3k4/1pp3r1/3b1p2/q3pQ2/P5r1/1P1P2B1/7P/2R1R2K b - - 2 36
bR7g5Qd5+294It also attacks their pawn on b3, which nothing defends.-thin
a3bbe4cb m25
positional-gives-material
3r4/3k2p1/1P5p/2P5/8/8/2R2K1P/8 w - - 3 40
wRd2+c6+127--none
a3bbe4cb m33
positional-gives-material
8/1k4p1/1P5p/2P5/5K2/8/7P/8 w - - 4 44
wh4Kg3103It also takes the sting out of (g5+).-thin
22d12591 m9
positional-no-material
4b1k1/5p2/6pp/2p5/3N4/2Q1KP1P/q5P1/8 w - - 0 34
wNc2Qxc5110It also protects your knight on d4.-thin
22d12591 m14
positional-no-material
6k1/5p2/4q1pp/1bp5/8/2Q2P1P/2NK2P1/8 b - - 5 36
bQd7+Qe2+213It also attacks your pawn on g2, which nothing defends.-thin
6f76c4ae m26
positional-no-material
8/6qk/Q4p2/8/8/P7/7P/7K b - - 0 52
bQg5Qd7623--none
6f76c4ae m27
positional-no-material
8/7k/Q4p2/6q1/8/P7/7P/7K w - - 1 53
wQa7+Qd3+426--none
6f76c4ae m28
positional-no-material
8/Q6k/5p2/6q1/8/P7/7P/7K b - - 2 53
bKg6Kh6621--none
6f76c4ae m32
last-move-no-reply
8/8/3Q2k1/5pq1/8/P7/7P/7K b - - 1 55
bQf6Kh5609--none
db8a2113 m15
positional-no-material
8/7k/1pQ5/7p/P4p2/6PP/1q1n1PK1/8 w - - 0 43
wgxf4Qc7+292--none
43af0bc8 m6
last-move-no-reply
8/1r4k1/4p2Q/p2b4/2pPp3/2P5/Pr1B3P/4N1K1 b - - 1 41
bKf7Kg8102--none
977851fe m11
positional-no-material
7k/5pp1/1pr5/1R6/3b1PP1/7P/4r3/5R1K w - - 0 35
wRh5+Re5100It also attacks their rook on e2, which nothing defends.
It also puts your rook on the open e-file.
-facts
c41cdcae m6
last-move-no-reply
4r1k1/5pp1/4p2p/1B2P3/7q/8/5PPP/3R2K1 b - - 0 30
bRe7Rf8194It also gets your rook out of the way of (Bxe8).-thin
2a899703 m4
positional-gives-material
1k3r2/1b4Q1/2p2rBp/p1Pp4/5P2/P3q3/6R1/3R3K b - - 1 38
bQh3+Rxf4126--none
4fd0f10c m5
positional-no-material
3r4/5pkp/p5p1/2N5/3r4/3n3P/P2R1PP1/3R2K1 w - - 1 30
wNxd3Rxd3112It also attacks their rook on d4, which they cannot hold.
It also protects your knight on c5.
-facts
f1bb4037 m5
positional-gives-material
1r2q1k1/2Q2p1p/1P4p1/6N1/3bp3/7P/5PP1/1R4K1 w - - 4 31
wb7Nxf7128It lets your e-pawn become a passed pawn.-thin
9744412f m18
positional-no-material
5b2/6k1/6q1/3Q4/2B2P2/p4K2/6P1/8 b - - 4 49
bKh6Qd6238It offers a queen trade while their king is under fire, which helps them.-thin
c7dbddd0 m9
last-move-no-reply
8/3b2pk/1Q5p/3pr3/4p2P/4P1P1/5PB1/6K1 w - - 0 56
wQc7Qd6107It also attacks their bishop on d7, which they cannot hold.
It also attacks their rook on e5, which nothing defends.
-facts
35b8cf0e m2
positional-gives-material
r3k1r1/1q6/p3P3/Pp3p2/1Qp2P2/3b2N1/5R1P/3R2K1 b q - 2 32
bQh7Qc6221It also attacks their pawn on e6, which nothing defends.-thin
a76b4a7b m7
positional-no-material
4r3/5pk1/p1n3pp/8/6Q1/5P2/P4P1P/6K1 w - - 2 30
wQd7Qa4247It also attacks your pawn on a6, which you cannot hold.
It also attacks your knight on c6, which nothing defends.
-facts
a76b4a7b m11
positional-no-material
8/3Q1pk1/p5pp/4n3/8/5P2/P4PKP/4r3 w - - 6 32
wQd2Qd4351It also gets their queen out of the way of (Nxd7).-thin
e8fe4db8 m23
positional-no-material
7Q/1p2k3/6p1/3P1p2/5q1P/8/8/3R2K1 w - - 0 50
wQg7+Re1+144It also puts their rook on the open e-file.-thin
f2a38c62 m6
positional-gives-material
2r3rk/4q1pn/5p2/pB1Nn3/3Q4/4R2P/PPP4K/6R1 b - - 1 27
bQf7Qd6236It also gets their queen out of the way of (Nxe7).-thin
da9088aa m2
positional-no-material
8/Q5kp/3qppp1/3n4/3P4/P2b2P1/B5PK/2B5 b - - 2 32
bNe7Qc7253It also attacks your bishop on c1, which you cannot hold.
It also attacks your queen on a7, which nothing defends.
-facts
da9088aa m10
last-move-no-reply
8/4Q1kp/2q2p2/P3p1p1/3P4/3b2P1/B5PK/2B5 b - - 0 36
bKg6Kh6112--none
ac42ef5a m6
positional-gives-material
2r2rk1/p4pp1/7p/8/4R2b/6NR/PPP2PK1/8 b - - 0 28
bBf6Bxg3110--none
ac42ef5a m12
positional-no-material
5rk1/p4pp1/5b1R/8/6R1/1P4N1/r4PK1/8 b - - 0 31
bg6Bd4151It also attacks your pawn on f2, which nothing defends.
It also clears the way for (f5).
-facts

6. What I would do

Catalogue: /root/santha/common/research/decodechess-explanations/out/decodechess-explanations.md. Injection report: none.