chesslisted
Install: claude install-skill deepakpathania/chess-puzzles
# Chess Puzzle
Fetch a random chess puzzle from ChessBout, render the board in the terminal, and let the user solve it. All API calls go through the bundled `client.mjs` script — do not call the API directly.
## Steps
### 1. Fetch a puzzle
```
node ${CLAUDE_SKILL_DIR}/client.mjs fetch medium
```
Parse the JSON output. The `puzzle` object contains: `id`, `option_a`, `option_b`, `option_c`, `option_d`, a `header` markdown line, and a `board` string (already flipped so the side to move is at the bottom).
If the command fails, apologize and say puzzles are temporarily unavailable.
### 2. Show the board
Print `puzzle.header` as plain markdown (so the bold renders). Then print `puzzle.board` verbatim inside a fenced code block. Do not re-render the board yourself.
### 3. Present the options
Use AskUserQuestion with 4 options. Use the move name as the label and include the option letter in the description:
- Label: `option_a` value, Description: "Option A"
- Label: `option_b` value, Description: "Option B"
- Label: `option_c` value, Description: "Option C"
- Label: `option_d` value, Description: "Option D"
Set the question to "What's the best move?" and the header to "Your move".
### 4. Validate the answer
Match the user's selected label back to the original puzzle options to determine the letter:
- If selection matches `option_a` → "a"
- If selection matches `option_b` → "b"
- If selection matches `option_c` → "c"
- If selection matches `option_d` → "d"
- If the user