Your strategic ideas were mostly right; the costly moments came when the idea replaced one last scan of the opponent's forcing reply.
This was not an opening-memory failure. You went thirteen moves without an engine flag and reached +1.9; the useful work is to separate the sound plans you described from the move-order checks that those plans did not answer.
14.Nb5 -- improve the position before invading
You spent 31 seconds on 14.Nb5 and moved from +2.2 to +1.3. The knight looked active on b5, but it had no stable future there and eventually became the target that made Qxb5 possible. h3 was the cleaner move because h3 Bxf3 Qxf3 Nd7 Qe2 Nc7 keeps the pawn structure intact, asks the bishop to decide immediately, and leaves White at +2.0.
The deeper lesson is about commitment. A knight jump into enemy territory is not automatically more active than a small pawn move; before choosing it, count its retreat squares and ask which enemy piece can take it after one tempo. Here the knight had to come back with 19.Nc3 anyway, after the position had already become tactical.
Your hoped-for e5 also belonged to this timing question. The central position supported the idea, but e5 would move the e4-pawn away from its job of supporting d5. That push needed to arrive with a concrete gain, not merely because the space looked available.
17.Bc2 -- solve the pawn attack with an x-ray
You did not see Rc1 when 16...c4 attacked the bishop on d3. Its point is unusually clean: the rook on c1 attacks the black queen on c8 through the c4-pawn, so that pawn cannot move to d3 without exposing the queen. The bishop therefore does not have to retreat. Rc1 Qh3 Bxc4 Qh4 Rg1 Kh7 shows how White develops with tempo, keeps the active bishop, and then reaches the g-file plan under better conditions.
This is the tactical version of prophylaxis. When a pawn attacks one of your pieces, do not stop at choosing a retreat square; trace the pawn's file and diagonals to see whether it is pinned to something more valuable. 17.Bc2 was safe, but it gave up the chance to make Black solve the c-file problem.
18.Rg1 -- the plan was sound, the position was not ready
Your reasoning behind 15.gxf3 had real chess content. The recapture supports e4, opens the g-file, leaves the knight on a6 far from the king, and notices that the bishop developed by 8...Be7 has little scope behind its own pawns. The engine's continuation after 14...Bxf3 begins gxf3 Nc7 f4 Nxb5 Bxb5 Qc8, so the recapture itself was not the problem.
Two parts of the attacking picture were less immediate than they felt. Your queen was not yet participating near the black king, and Bxh6 required several bishop tempi before it could exploit a g7 pin. Black meanwhile had a forcing capture against the loose b5-knight. Playing 18.Rg1 before checking that capture took the game from +2.6 to +0.7 because Qxb5 simply wins the knight. Nc3 was the correct move order: Nc3 b5 Be3 Qc8 Nxb5 Qh3 secures the piece and keeps +2.5 before the attack continues.
So the conclusion is not "the g-file plan was wrong." It is that a strategic plan earns the right to be played only after checks, captures, and attacks on loose pieces have been cleared. Russia-Melanesia missed Qxb5 with 18...Kh8, returning the evaluation to +3.0, but that second chance does not repair the decision process behind 18.Rg1.
22.Nc3 -- force the queen trade before improving a piece
After 21...Qxb2, the queen looked active but had very few squares. Bc3 was the forcing conversion: Bc3 Qxc3 Nxc3 Nh5 e5 Nc5 leaves White at +4.5 because Black has to surrender the queen for the bishop. Instead, 22.Nc3 took 48 seconds and reduced +4.8 to +3.2. It also permitted Nb4 axb4 axb4 Rb1 bxc3 Rxb2, a line in which Black creates counterplay rather than submitting to the trap.
The game still ended after 22...Nc5 23.Ra2, but the resignation can hide the important distinction. 23.Ra2 punished Black's failure to use the chance; Bc3 would have removed the chance. In a winning position, look first for moves that force the opponent's reply, especially attacks that leave a queen with no safe square.
Phase notes
Opening and structure: After 4...b6 you thought, "I do not know this opening, so I am winging it," but the next nine moves contained no engine error. The early d5 idea was structurally supported: before 9.d5 the c4-pawn controlled d5, and after 13.cxd5 the e4-pawn supported the new pawn on d5; only a later e5 would withdraw that support and create the isolated-pawn question you were worried about.
Queenside decisions: Your concern after 10...a5 was concrete: a4 gains space but releases b4 as a knight square, while 12.a3 controls b4 directly. The heuristic behind 13.cxd5, trading a flank pawn for a centre pawn, happened to be right, but the full explanation is stronger: 11.Re1 supports e4, e4 supports d5, and that chain is why the recapture works.
Profile check
Is this the same mistake as last time? Yes, in a narrower and more useful form. In the prior loss's 18.c5, a natural pawn move at +4.9 skipped the opponent's forcing possibilities; here the thematic 18.Rg1 skipped Qxb5, and 22.Nc3 skipped the forcing queen trap. The unfamiliar opening did not trigger the pessimistic self-assessment from that game, so that part of the profile was contradicted here. The recurring issue was letting a plausible move end the search before the forcing-move scan.
What to drill next
- Replay the position before 18.Rg1. Pass when you name Qxb5 before touching a piece and choose Nc3 three times running against the engine.
- Replay the position before 22.Nc3. Pass when Bc3 is your first candidate three times running and you can explain why the queen must take it.
- Work a short set of x-ray attack puzzles, saying which higher-value piece makes the apparent attacker or defender immobile before each move.
Before playing a thematic move, name their best forcing reply and fix that first.