From the pasted game to the report. Every box is a real step along the way.
Input
A pasted PGN
Or a link shared from the phone, which the server resolves
Input
Your Chess.com games
Up to fifty, searching the last six months of archives
API
Node server
A session with a random token, passwords under scrypt, and the PGN turned into the positions of the game
TypeScript
Engine
Several Stockfish in parallel
Separate processes speaking UCI, at depth 14, 17 or 20 depending on the level. Every position of the game is evaluated exactly once
UCI
Grading
What the move cost
From the loss in centipawns to the drop in win probability, and from there to the label
Opening
ECO book
3,810 entries from lichess, to say on which move you left theory
Reasons
Patterns and habits
Hanging piece, abandoned defence, missed mate, king left uncastled, early queen
Store
SQLite on a volume
Games, full reports and the aggregates of labels and phases. The profile is computed by re-reading the reports, which is where the move-by-move detail lives
Output
Guided review and profile
One screen per idea, and the profile over your last two hundred games
Optional
The Why? button
A model turns what the engine already said into a reason, with the facts of the position in front of it and forbidden from contradicting it
Claude
Next up
RAG over chess literature
Today the why reasons over the engine's data and cites no opening theory or plans from a book. That is where it fits
Pending
The dashed box is not built. It is there because it is what comes next, not because it already works.