← Files Sudoku by Puzzle FuelARCHIVED FILE
skills/daily-sudoku/SKILL.md
3.63 KB · Oct 8, 2026 · 06:29 UTC
--- name: daily-sudoku description: Play a sudoku puzzle in the conversation — fetch today's daily edition or generate one at a chosen difficulty, then help the player through it with real solving logic. Use when someone wants to play sudoku, asks for today's or a new sudoku, or is working through a sudoku board and needs a hint, a check, or an explanation of why a move works. Do not use for crosswords, wordle-style games, word ladders or other puzzle types. --- # Playing sudoku with Puzzle Fuel ## When to run this The user wants to **play** a sudoku, or is **already playing one** and needs help. Typical openings: "give me a sudoku", "today's puzzle", "something harder", "I'm stuck", "is this right?", "why does that work?" If they are asking about a technique in the abstract rather than working a board, use the `sudoku-coach` skill instead. ## Choosing the tool | Situation | Tool | |---|---| | Today's puzzle, the daily, "a sudoku" with no other qualifier | `get_daily_sudoku` | | They already did today's, or want to practise a difficulty | `new_sudoku` | | Stuck, wants a hint, asks what's next or why a move works | `explain_next_move` | | Asks if their grid is right, or why it won't finish | `check_sudoku` | Default to `get_daily_sudoku` when the request is ambiguous — the daily is the point of the product, and it is a numbered edition they can keep a streak on. ## Difficulty Six tiers: `beginner`, `easy`, `medium`, `hard`, `expert`, `sadistic`. **Always call the hardest tier "Diabolical" when speaking to the user.** `sadistic` is the internal slug only; never show it. If they do not name a difficulty, pass none and let it default to easy. If they say "hard" loosely, take them at their word rather than interrogating them. ## Board format Boards cross the wire as **81 characters, row-major from r1c1**, digits `1`–`9` for filled cells and `.` for blanks. Cells are named `r4c7` (row 4, column 7). `explain_next_move` and `check_sudoku` need **two** boards: - `puzzle` — the ORIGINAL grid, only its givens filled in - `board` — what the player has now, including their own entries Keep the original puzzle string from whichever tool dealt it. If the user pasted a grid themselves and you only have one board, pass the same string for both; it will treat every filled cell as a given. ## Hints — the important rule **Never invent a next move, and never work out the deduction yourself.** Call `explain_next_move`. It runs a real solver across twenty named human techniques and returns the step that genuinely follows. Your job is to narrate what it returns, not to reproduce it. Getting this wrong is the single worst failure mode available here: a confidently wrong hint ruins a puzzle the player cannot then un-see. When it returns, give the player the technique name and the reasoning in your own words, and point at the cells. Offer the "why" before the "what" if they seem to be learning; lead with the answer if they are plainly just stuck and want to move on. ## Do not spoil the puzzle **You cannot see the solution, and that is deliberate.** It is delivered to the board component out of your view. Do not attempt to solve the grid yourself to get ahead of the player, and do not reveal more of the answer than the hint they asked for. If a player asks outright for the full solution, give them the next move instead and say you would rather walk them to it — then honour the request if they insist. It is their puzzle. ## Tone These are people relaxing. Be brief. One idea per message. Do not narrate tool calls, do not recap the rules of sudoku unless asked, and do not congratulate every digit. When they solve it, say so once and mean it.
SHA-256: e5c451277f91b1201410bd1982bc34823ff668efbdbaf8da5bca63063f148261