How to build an opening repertoire that actually works
Plenty of players 'have a repertoire' in the sense of a folder of lines they've looked at once. Very few have a repertoire in the sense that matters: a small, connected set of ideas they could explain out loud, that holds up when an opponent plays something not in the folder. The difference is how you build it.
Start from plans, not move lists
Before memorising a single line, write down the plan in one sentence: 'I want a pawn on d5, my bishop developed before ...e6, and to castle by move seven.' A plan survives a surprise; a move list doesn't. If you can't state the point of an opening in a sentence, you don't understand it well enough to play it against a real opponent yet.
Cover replies by frequency, not completeness
You do not need an answer to every possible move — you need answers to the replies you'll actually face, in the order you'll actually face them. Look at what club-level opponents actually play (usually a handful of moves cover 90% of games at any given rating) and go deep there, rather than spreading thin trying to cover every rare try you'll meet once a year.
Build it one branch at a time
Add your main line first, play it in real games, and only branch out to a sideline once the main line is genuinely comfortable. A repertoire built five branches deep before you've played the main line even once is a repertoire built on guesses about what you'll need — build it in the order you'll actually use it.
Update it from your own losses
The single best source of repertoire improvements is the games you lost in it. Every loss inside your own opening is a specific, concrete gap — a move you didn't know, a plan you misjudged. Patch exactly that gap rather than re-reading the whole line from scratch; targeted fixes stick, general review doesn't.
A repertoire built this way is small enough to actually hold in your head, and — because it's built from plans rather than memorised moves — it keeps working even the moment your opponent leaves the book.
Reading is the start. Play a coached game against the engine at your level.
Play a game