From the lab · free AI plugin

Deduction Puzzles

Logic puzzles with exactly one solution, and proof that a person can reach it by reasoning, without guessing. Read how it came about, play the two puzzles it made, and take the plugin.

01 · The story

Five days, then fifteen minutes

A friend told me, “We use AI for everything. Why would we need a product if we can build any solution ourselves?”

Then she mentioned she’d spent five days trying to get ChatGPT to make a deduction puzzle for a game she was creating. She wanted a Sudoku and a “Murdoku,” but couldn’t get puzzles that worked.

That evening, I asked Claude to create a puzzle plugin. Fifteen minutes later, it generated both. The puzzle logic worked on the first attempt. It took a couple more iterations to get the plugin packaged in ChatGPT’s latest format.

Claude did the coding. What I contributed was framing the problem: define the puzzle rules, generate candidates, and check that each puzzle has one solution a person can reach by deduction.

The lesson I took from it isn’t that everyone needs to buy a puzzle plugin. It’s that access to AI and a useful result are two different things. Often the hard part is working out what to ask it to build, what constraints matter, and how to check the answer.

Access to AI and a useful result are two different things.
02 · The framing

What I asked for

A language model can’t check a puzzle by reading it. Code can. So the request wasn’t “write me a Sudoku”. It was these three steps, and the model builds the engine that carries them out.

  1. Specification

    Define the rules

    Every puzzle is a small constraint problem: what gets filled in, which values are allowed, the rules that always hold, and the kinds of clue a player can be given.

  2. Workflow

    Generate candidates

    Build a full solution, offer a big pool of clues that are all true for it, and keep removing clues while the answer stays forced. Changing a puzzle always means generating a new one. Nobody edits clues by hand.

  3. Checks

    Prove it’s fair

    An exhaustive counter confirms there’s exactly one solution. A second solver, limited to the moves a person makes, has to finish it without guessing. The moves it needed set the difficulty.

03 · Play

Sudoku

Medium · 25 givens ✓ one solution, solvable by logic

How to play

  • Fill every row, column and 3×3 box with 1 to 9, each exactly once.
  • Tap a cell, then a number. On a keyboard: arrows, 1–9, Backspace, N for notes.
  • Hint shows the next deduction, the way the plugin’s solver would find it.
Printable PDF

03 · Play

Murdoku: The Late Shift

5×5 · five suspects ✓ one solution, solvable by logic

How to play

  • Exactly one suspect in each row and each column. The V marks where the victim was found.
  • The killer was alone with the victim in the Archive.
  • Pick a suspect, then tap a square to place them. Tap someone on the plan to pick them up again. Tap an empty square with nobody picked to cross it out.
The original sheet

Who did it?

    04 · Get it

    The plugin, free

    A skill plus a small Python engine. The skill tells the model never to write a puzzle by hand: every puzzle, hint and difficulty rating comes from the engine, and nothing counts as verified until the engine says so.

    What’s inside

    • plugin.json · the plugin manifest
    • skills/deduction-puzzles/SKILL.md · the framing
    • …/scripts/engine.py · solvers, rating, generate, verify, hints
    • …/scripts/puzzle_types.py · number grids, who-owns-what grids

    Packaged for ChatGPT and Codex. The skill inside is a standard Agent Skill, so it also works in Claude.

    Download the plugin zip · 16 KB

    Things to ask it

    • Make a medium number-grid logic puzzle
    • Create a 4-person matching puzzle with a bakery theme
    • Invent a new kind of deduction puzzle

    It gives hints one deduction at a time, points out wrong entries without giving the answer away, and when you ask for a new puzzle type, it writes the spec and shows you a small example before building it.

    05 · Your turn

    Stuck on something?

    If there’s something you’ve been trying to make with AI and you keep getting stuck, tell me what it is. I’d enjoy helping you frame the problem.

    Say hi