Rookify Finally Sees What It Was Missing
015 - How five broken skills turned into the strongest correlations in the system.
Hey folks, welcome back 👋🏿
By the end last week’s sprint, the skill tree system had 14 strong correlations, 15 moderate, and 21 weak or broken skills. Not terrible, but not production-ready.
When I looked closer at the validation results, I noticed that five skills had negative correlation (literally rewarding bad play), three skills were still generating 0 scores which meant there were still some fundamental detection issues.
This week, I was able to fix most of these issues. Below are the latest correlation results from Sprint 5.
Strong correlations more than doubled and the Weak skills have been cut in half!
The biggest individual skill improvements were:
Weak square exploitation: -0.55 → 0.93 (+1.48)
Theory retention: -0.59 → 0.80 (+1.39)
Pawn structure planning: -0.20 → 0.87 (+1.07)
Strategic mastery: -0.09 → 0.96 (+1.05)
Prophylaxis: 0.00 → 0.96 (+0.96)
These five skills that were initially fundamentally broken are now some of the highest correlated skills in the entire skill tree.
🔧 The Biggest Technical Wins From This Sprint
Sprint 5 started with a thesis that the infrastructure from Sprints 1-4 was sound, but the detection logic was inverted, missing, or saturated. I had elegant composite features and context filters, but underneath, the system was counting the wrong things.
1. Weak Squares: Teaching Rookify to Tell Friend from Foe
The original bug was philosophically elegant, I was counting weak squares the player created (in their own position) instead of weak squares they exploited (in the opponent’s position).
Beginners create lots of weak squares so they scored high where as advanced players exploit opponent’s weak squares so they scored low. The fix required flipping the scoring perspective:
The result of the change led to the correlation score for this skill jumping from -0.55 to 0.93, the single biggest correlation swing in the entire skill tree.
Now when I review games where this skill scores high, I see knights camped on weak squares, bishops controlling colour complexes the opponent can’t contest, and positional dominance that feels right.
2. Theory Retention: Counting Matches, Not Misses
The skill tree was initially tracking how quickly players left book, when it should have been counting how long they stayed in book.
The result of the change led to the correlation score for this skill jumping from -0.59 to 0.80, and now the skill correctly identifies players who’ve actually studied their openings.
3. Prophylaxis: From Philosophy to Implementation
This skill had zero correlation because it wasn’t actually implemented, turns out it was a stub. The implementation challenge here was how to detect moves that prevent something from happening. I decided to settle on mobility restriction (i.e. moves that limit opponent options)
With a correlation score of 0.96, this is now one of the highest-correlation skills in the entire system.
When I manually review games where this triggers, I see moves like h3 preventing Bg4 pins, a3 stopping Nb4 jumps, and defensive prophylaxis that looks genuinely master-level.
4. Strategic Mastery: Simplifying the Complex
This skill was a composite of three weaker skills, but the formula was trying to do too much. I simplified it to measure three clear things: long-term planning quality (low ACPL over long games), successful strategic sacrifices, and plan adaptation.
This correlation score of this skill jumped from -0.09 to 0.96, an indication that the composite feature rewrite worked beautifully.
5. Pawn Structure Planning: Using Real Features
I uncovered that the composite index for this skill wasn’t using actual pawn structure features so I rewrote it to track isolated, doubled, and backward pawns, then inverted the scoring (fewer bad structures = better understanding)
The result of these changes led to the correlation score for this skill jumping from -0.20 to 0.87, indicating the skill now actually measures pawn structure understanding, not just vibes.
🚀 What’s Next: Sprint 6 — Perfecting the Skill Tree
Three skills are still generating zero scores across all ELO levels. This means the detection logic exists, but not firing. Four skills are still inverted despite my fixes. And five more are just barely discriminating between ELO levels.
Sprint 6 will be focused on addressing these issues and finalising the skill tree once and for all. I’m aiming for an overall average correlation of 0.7 with no skills scoring 0 and no skills with backwards correlations.
Once I’ve achieved this, I’ll move on to completing the frontend features and starting shaping Rooking for an MVP launch. I’ll also start sharing more data-driven insights how chess improvement actually looks in real life, and what distinguishes and 500-level player from a 2500-level player.
Thanks for reading,
– Anthon
Chief Vibes Officer @ Rookify
Join the Journey
If you’ve been enjoying these behind-the-scenes posts, I’d love for you to get involved in shaping Rookify’s future.
💬 Join the Community:
Hop into the Rookify Discord — it’s where early testers, chess enthusiasts, and vibe coders hang out to share feedback, ideas, and experiments.
🧠 Share Your Chess Journey:
Take a minute to fill out the Chess Improvement Survey — your input directly helps me design better coaching features and skill models.
🧪 Become a Tester:
Rookify’s early access version is live at rookify.io. You can try out it’s Explore Mode and Practice Mode while we continue building the next wave of AI-powered features.
This project has always been about building something with the community, not just for it. So if you’re curious about how AI can actually teach chess rather than just analyze it, I’d love to have you along for the ride. ♟️







