Openings, Commentary, and the Birth of the Skill Tree
004 - Implementing an opening library, designing the skill tree, and laying the foundation for smarter commentary.
Hey folks, welcome back.
This week I made some exciting progress on Rookify. The big highlight is that I’ve now implemented an opening library so Rookify can identify which openings you play during analysis. It’s a foundational feature that’s going to pay off in the long run, because later I’ll be tracking opening performance and using it as one of the data points that feeds into your chess profile and skill tree.
On top of that, I also started working on the LLM commentary layer (currently powered by GPT-4 Turbo, though I expect to switch to GPT-4o or even GPT-5 depending on costs). Right now the commentary is pretty generic (just being honest!), but that’s because the MCP memory system isn’t wired in yet. Before that happens, I need to finalise the concept of the Rookify skill tree, since that’s going to be the blueprint for the coaching profile and puzzle recommendations.
I’ll share more on that in a bit—but first, let’s talk openings.
The Opening Library
The way it works is fairly straightforward but powerful. Every game that gets analysed will now also be checked against an ECO (Encyclopaedia of Chess Openings) library. Here’s what happens behind the scenes:
Rookify parses your PGN and does a longest-prefix match of your moves against a trie of ECO lines (built at startup).
If the PGN already has accurate opening headers, those are trusted. If not, Rookify backfills the missing info from the detector.
Each game is then tagged with both the opening name and the ECO code.
On the frontend, both the recent games list and the analysis overview now display these fields consistently.
In practice this means:
If you play the Caro-Kann Defense, you’ll see “Caro-Kann Defense (B10)” on your game cards.
If your PGN header is missing or incomplete, Rookify will still detect and display the right opening.
Over time, the app will start building a picture of your opening repertoire—what you play most, where you win or lose, and what alternatives might be worth exploring.
It’s not flashy yet, but this is the kind of foundational data that’s going to make Rookify feel truly personalised later on.
The Skill Tree (Sneak Peek)
The other big piece of my week went into designing the Rookify skill tree—the feature most requested in the feedback survey. This will basically serve as the blueprint of your chess profile, mapping your strengths, weaknesses, and progress across four core skill areas:
Opening Strength
Tactical Awareness
Positional Understanding
Endgame Resilience
Each of these will span across five Elo tiers (Beginner → Intermediate → Club Level → Advanced → Master). As you play games and train, Rookify will update your profile, unlocking insights and recommendations specific to your level.
I’m not ready to show the full tree just yet (don’t want it hijacked before launch 😅), but here’s the idea: it won’t just tell you “work on tactics,” it will show you exactly which tactical motifs or endgame concepts you need to master to move forward.
Next week, I’ll start exploring the ML solutions to make this more than just a concept. Chip Huyen’s Designing Machine Learning Systems has already given me a ton of grounding knowledge, so I feel well-prepared to take the first steps.
The Commentary Layer
I also started architecting the LLM commentary system. For now, it’s basic: GPT-4 Turbo generates human-readable summaries of your game. But once MCP is integrated (after the skill tree is finalised), commentary will shift from generic to personalised.
Instead of:
“You blundered on move 17.”
It will eventually say things like:
“As an aggressive player, you pushed too early in the center here. A calmer buildup would’ve suited your style better.”
That’s where the real magic of Rookify will come in—and it all ties back to MCP and the skill tree.
What’s Next
Looking ahead, I aim to work on the following:
Deep dive into ML approaches to power the skill tree in practice.
More polish for the frontend (always needed).
Continue iterating on the commentary system so it can hook directly into MCP once the skill tree is live.
This is one of those weeks where progress feels both technical (openings, architecture) and visionary (designing the skill tree). The pieces are starting to click together.
Thanks for following along,
– Anthon
Chief Vibes Officer @ Rookify
By the way, if you’re a chess player, I’d love to hear about your own improvement journey.
What’s been frustrating? What’s actually helped? And what kind of innovations do you wish existed in the chess world? If you’ve got 3–5 minutes to spare, please fill out this short survey—it would mean a lot and will directly help shape how Rookify evolves.
Thanks again