NeuralBuilt · Case study

A chess coach that cannot lie to you.

Built to take one player from 1185 to 1800. The engine decides every verdict. The AI only explains it, and a validator blocks any coaching that contradicts the board.

Native Swift 6 Stockfish 17 + Syzygy tablebase Engine-grounded truth
Chess Coach play screen with live coaching

Why we built it

To compound one player's time, not replace it.

Trey has logged 4,270+ blitz games on chess.com. His rapid peak is 1938, so the tactical ability is there. The bottleneck is speed and pattern recognition. The goal is 1800+ blitz, and at a serious level the only way to get there fast is to maximize every hour of study. So the project became a coach that makes every hour of study count, built to find and drill real weaknesses fast.

It started from one specific failure. An LLM was asked to coach a chess move. It called a checkmate a "blunder" and invented escape squares that did not exist on the board. A coach that fabricates verdicts is worse than no coach at all.

The problem

Language models cannot judge chess.

They invent move quality by pattern-matching on text, not by calculating positions. Tell one it played the best move in the game and it will confidently agree. Tell it the same move was a blunder and it will agree with that too. For a student trying to find real weaknesses, that is poison.

The deeper gap: improvement needs a closed loop. Play, review, find the weakness, drill it, measure whether you improved. Almost every chess app does the first step and stops. You finish a game, see a rough accuracy number, and have no idea what to actually practice.

The breakthrough

One source of truth the coach can never contradict.

Every surface in the app reads from a single typed, immutable fact computed by the engine: the position, the best moves, the played move, the classification, the margin. The eval bar, the review, the drills, the coaching, the puzzles, all read the same object. The AI became a narrator, not a judge. A mechanical validator checks the coach's words against the fact before it can render: it cannot say "blunder" when the fact says "excellent," cannot name a best move the engine did not pick. If the text contradicts the board, it is rejected.

The rebuild was done one vertical slice at a time, engine first, with a chess-correctness gate between every piece before the next could begin. The earlier mistake, scaling an app on a core that had never returned a single real evaluation, is now structurally impossible.

"There is exactly one source of chess truth, a real engine returning a typed, immutable fact, and nothing in the system may produce or contradict a verdict independently of it."

Rebuild principle, Chess Coach

What you get

Your games become your training.

When the coach says a move was a blunder, it is because the engine computed the centipawn loss and classified it, so you can trust what you hear. When you blunder in a real game, that exact position becomes a spaced-repetition drill with the engine-verified best move. Endgames train against Syzygy tablebase ground truth. The opening lines are real master theory, ten to thirteen moves deep. And it runs entirely on device, fully offline, with no account and no cloud dependency at all.

4,270+
Real blitz games of training data
1,178
Puzzles, each verified by two engines
13
Correctness gates the AI cannot override
97
Opening drills, real master theory

Want software that refuses to fake its own results?

Start a project