chess-best-move

This skill provides a systematic approach to analyzing chess board images and determining the best move(s). It emphasizes proper image analysis techniques, avoiding common pitfalls like pattern-matching to known puzzles instead of actual position analysis.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "chess-best-move" with this command: npx skills add letta-ai/skills/letta-ai-skills-chess-best-move

Chess Best Move

Overview

This skill provides a systematic approach to analyzing chess board images and determining the best move(s). It emphasizes proper image analysis techniques, avoiding common pitfalls like pattern-matching to known puzzles instead of actual position analysis.

Core Workflow

Step 1: Understand Task Requirements

Before starting analysis:

Read the task requirements completely to identify:

  • Expected output format (e.g., space-separated vs newline-separated moves)

  • Whether multiple winning moves are possible

  • Move notation expected (e.g., g2g4 vs Ng4 vs g4 )

  • Any constraints on the solution

Note if the task mentions:

  • "multiple winning moves" - prepare to output all valid solutions

  • Specific move notation format - match exactly

  • Time constraints (mate-in-N) - verify move count

Step 2: Image Analysis (Critical Phase)

Primary Approach: Systematic Detection

Do NOT attempt to match the image against known puzzles. Instead:

Detect the board grid first

  • Identify the 8x8 grid boundaries

  • Determine board orientation (which corner is a1)

  • Save debug images showing detected grid lines for verification

Detect piece positions systematically

  • Analyze each of the 64 squares individually

  • For each occupied square, determine:

  • Color (white/black)

  • Piece type (King, Queen, Rook, Bishop, Knight, Pawn)

  • Record findings in algebraic notation (e.g., "White King on e1")

Validate detection results

  • Total pieces must be ≤32 (if detecting more, detection is flawed)

  • Each side must have exactly 1 King

  • Each side can have at most 8 pawns, 2 rooks, 2 bishops, 2 knights, 1 queen (plus promotions)

  • If validation fails, refine detection approach before proceeding

Step 3: Position Verification

Before calculating moves:

Construct FEN notation from detected pieces

  • Build the position string square by square

  • Include castling rights if determinable

  • Include en passant square if relevant

Verify FEN validity

  • Use a chess library (python-chess) to validate the position

  • Check that the position is legal (no impossible configurations)

  • If FEN is invalid, revisit detection step

Create visual verification

  • Generate a board diagram from the constructed FEN

  • Compare visually with the original image

  • If they don't match, iterate on detection

Step 4: Move Calculation

With a verified position:

Use a chess engine or library

  • python-chess can enumerate legal moves and check for checkmate

  • For "best move" tasks, consider using Stockfish for evaluation

  • For "mate-in-N" tasks, enumerate all moves that lead to checkmate

Find all winning moves if required

  • If task mentions multiple solutions, find ALL valid moves

  • Verify each candidate move achieves the stated goal

Validate moves before output

  • Confirm each move is legal in the position

  • Confirm each move achieves the objective (checkmate, etc.)

Step 5: Output Formatting

Match the expected output format exactly:

Check the task for format specifications

Common formats:

  • Space-separated: g2g4 e2e4

  • Newline-separated: each move on its own line

  • Standard algebraic: Nf3 , exd5

  • Long algebraic: e2e4 , g1f3

If multiple moves are valid, include all of them in the specified format

Common Pitfalls to Avoid

  1. Pattern Matching to Known Puzzles

Wrong approach: Detect a few pieces, then try to match against "famous puzzles" database.

Why it fails: Most positions are unique. Even if a few pieces match a known puzzle, the full position likely differs.

Correct approach: Always analyze the actual image without preconceptions.

  1. Ignoring Detection Failures

Wrong approach: When detection shows impossible results (e.g., 40+ pieces), proceed anyway with partial data.

Why it fails: Garbage in, garbage out. Flawed detection leads to wrong moves.

Correct approach: If detection produces impossible results, redesign the detection algorithm. Do not proceed until detection is validated.

  1. Confirmation Bias

Wrong approach: Find evidence supporting a preconceived notion while ignoring contradicting evidence.

Example: Detecting pieces on h5 and f7, immediately concluding "Legal's Mate" without checking other squares.

Correct approach: Consider ALL detected pieces. The solution must account for the entire position.

  1. Circular Verification

Wrong approach:

  • Assume image shows Position X

  • Test move M on Position X

  • Confirm M works on Position X

  • Conclude M is correct

Why it fails: This proves nothing about the actual image content.

Correct approach: Verify against the position derived from image analysis, not assumed positions.

  1. Missing Output Requirements

Wrong approach: Output a single move when task requires multiple moves.

Correct approach: Re-read task requirements before finalizing output. Check for phrases like "all winning moves" or "multiple solutions."

  1. Skipping Piece Type Detection

Wrong approach: Only detect which squares are occupied, not what pieces are on them.

Why it fails: Cannot calculate valid moves without knowing piece types. A pawn move requires knowing it's a pawn.

Correct approach: Detection must identify both color AND piece type for each occupied square.

Verification Checklist

Before submitting a solution, verify:

  • Detection produced valid piece counts (≤32 total, 1 King per side)

  • FEN was constructed from detection (not assumed)

  • Position was validated as legal

  • Visual comparison confirms detection matches image

  • All candidate moves were tested on the detected position

  • Move(s) achieve the stated objective (checkmate, etc.)

  • Output format matches task requirements exactly

  • If multiple moves possible, all are included

Technical Implementation Notes

Recommended Libraries

  • Image processing: OpenCV, PIL/Pillow

  • Chess logic: python-chess (handles FEN, move validation, checkmate detection)

  • Engine analysis: Stockfish (via python-chess UCI interface)

Detection Strategy

  • Use color thresholding to separate light/dark squares

  • Use contour detection to find piece shapes

  • Consider template matching against known piece images

  • Always generate debug visualizations to verify accuracy

Debugging Approach

When detection fails:

  • Save intermediate images showing:

  • Detected grid lines

  • Identified square boundaries

  • Detected piece locations with labels

  • Test detection algorithm on known positions first

  • Iteratively refine based on visual inspection of debug output

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Research

feal-differential-cryptanalysis

No summary provided by upstream source.

Repository SourceNeeds Review
Research

feal-linear-cryptanalysis

No summary provided by upstream source.

Repository SourceNeeds Review
General

extracting-pdf-text

No summary provided by upstream source.

Repository SourceNeeds Review
General

video-processing

No summary provided by upstream source.

Repository SourceNeeds Review