From TODO.md » Education & training » Tactics trainer (P1, highest training ROI).
Context
The /tactics/ page (course/docs/tactics.md) and puzzle_set widget
({{ puzzle_set(id, puzzles, title) }} → src-widgets/widgets/puzzle-set-widget.js)
already ship 3 of 7 planned motifs: fork «چنگال», pin «آچمزی», skewer «سیخ»
(2 puzzles each).
Task
Add puzzle sets for the remaining 4 motifs using the same pattern:
- Discovered attack
- Back-rank mate
- Deflection
- Decoy
Approach (per prior sessions' decision, see pgns/README.md)
Hand-author FEN positions per motif (not pulled from Lichess/Chessable),
independently verify each with python-chess (legal FEN + legal solution
moves), document sourcing in pgns/README.md » "Chapter-embedded puzzles".
Acceptance criteria
From TODO.md » Education & training » Tactics trainer (P1, highest training ROI).
Context
The
/tactics/page (course/docs/tactics.md) andpuzzle_setwidget(
{{ puzzle_set(id, puzzles, title) }}→src-widgets/widgets/puzzle-set-widget.js)already ship 3 of 7 planned motifs: fork «چنگال», pin «آچمزی», skewer «سیخ»
(2 puzzles each).
Task
Add puzzle sets for the remaining 4 motifs using the same pattern:
Approach (per prior sessions' decision, see
pgns/README.md)Hand-author FEN positions per motif (not pulled from Lichess/Chessable),
independently verify each with
python-chess(legal FEN + legal solutionmoves), document sourcing in
pgns/README.md» "Chapter-embedded puzzles".Acceptance criteria
{{ puzzle_set(...) }}sections added tocourse/docs/tactics.md,one per motif, 2 puzzles each (matching existing motifs' shape)
python-chesspgns/README.mdexplainer + worked example is a separate, still-open follow-up item)