{"ok":true,"site":{"host":"givens.netlify.app","url":"https://givens.netlify.app/","type":"live","desc":"You and ChatGPT share one Sudoku. It names the next technique; you decide whether to fill it. Hints, checks, and one safe step — never a dumped solution.","tools":[{"name":"read_board","kind":"answer","impl":"imperative","description":"Read the live Sudoku grid, empty-cell candidates, locks, conflicts, and the next safe technique. Use this before acting. Do not print the full solution. Follow board.agentPolicy.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"select_cell","kind":"act","impl":"imperative","description":"Select a cell so the human can see where you are looking. Does not change digits.","inputSchema":{"type":"object","properties":{"row":{"type":"integer","minimum":1,"maximum":9,"description":"Row number, 1 at the top."},"col":{"type":"integer","minimum":1,"maximum":9,"description":"Column number, 1 at the left."}},"required":["row","col"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_cell","kind":"act","impl":"imperative","description":"Fill one empty cell with a digit. Prefer hint or apply_next_step unless the user asked you to enter a specific digit. Cannot change givens or locked cells.","inputSchema":{"type":"object","properties":{"row":{"type":"integer","minimum":1,"maximum":9,"description":"Row number, 1 at the top."},"col":{"type":"integer","minimum":1,"maximum":9,"description":"Column number, 1 at the left."},"digit":{"type":"integer","minimum":1,"maximum":9,"description":"Digit 1-9."}},"required":["row","col","digit"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"clear_cell","kind":"act","impl":"imperative","description":"Clear a non-given cell. Cannot clear givens or locked cells.","inputSchema":{"type":"object","properties":{"row":{"type":"integer","minimum":1,"maximum":9,"description":"Row number, 1 at the top."},"col":{"type":"integer","minimum":1,"maximum":9,"description":"Column number, 1 at the left."}},"required":["row","col"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"toggle_candidate","kind":"act","impl":"imperative","description":"Pencil or cross off a candidate digit in an empty cell.","inputSchema":{"type":"object","properties":{"row":{"type":"integer","minimum":1,"maximum":9,"description":"Row number, 1 at the top."},"col":{"type":"integer","minimum":1,"maximum":9,"description":"Column number, 1 at the left."},"digit":{"type":"integer","minimum":1,"maximum":9,"description":"Digit 1-9."}},"required":["row","col","digit"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"lock_cell","kind":"act","impl":"imperative","description":"Lock a cell so the agent cannot write there. The human can still edit it.","inputSchema":{"type":"object","properties":{"row":{"type":"integer","minimum":1,"maximum":9,"description":"Row number, 1 at the top."},"col":{"type":"integer","minimum":1,"maximum":9,"description":"Column number, 1 at the left."}},"required":["row","col"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"unlock_cell","kind":"act","impl":"imperative","description":"Allow the agent to write in a previously locked cell.","inputSchema":{"type":"object","properties":{"row":{"type":"integer","minimum":1,"maximum":9,"description":"Row number, 1 at the top."},"col":{"type":"integer","minimum":1,"maximum":9,"description":"Column number, 1 at the left."}},"required":["row","col"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"hint","kind":"act","impl":"imperative","description":"Find the next safe Sudoku technique (naked single, hidden single, naked pair, or pointing pair). Highlights the cells and explains why. Does not fill anything. Use this when the user wants help without spoilers.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"explain_cell","kind":"act","impl":"imperative","description":"Explain one cell: current digit or remaining candidates, and why other digits are impossible.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"row":{"type":"integer","minimum":1,"maximum":9,"description":"Row number, 1 at the top."},"col":{"type":"integer","minimum":1,"maximum":9,"description":"Column number, 1 at the left."}},"required":["row","col"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"check_move","kind":"answer","impl":"imperative","description":"Check whether a proposed digit belongs in a cell. Distinguishes conflicts, guesses that are not yet forced, and digits that a technique already forces. Does not fill the cell.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"row":{"type":"integer","minimum":1,"maximum":9,"description":"Row number, 1 at the top."},"col":{"type":"integer","minimum":1,"maximum":9,"description":"Column number, 1 at the left."},"digit":{"type":"integer","minimum":1,"maximum":9,"description":"Digit 1-9."}},"required":["row","col","digit"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"apply_next_step","kind":"act","impl":"imperative","description":"Apply exactly one safe deduction: fill a forced cell or cross off candidates from a pair/pointing claim. Never solves the whole puzzle in one call. Use only when the user wants a fill, not just an explanation.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"undo","kind":"act","impl":"imperative","description":"Undo the last grid change (fill, clear, pencil, or lock).","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"load_puzzle","kind":"act","impl":"imperative","description":"Load a bundled puzzle by id. Ids: last-five, morning-paper, coffee-break, commute, evening, ink-hard. Resets the board.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Puzzle id from read_board or this list: last-five, morning-paper, coffee-break, commute, evening, ink-hard."}},"required":["id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"load_custom_puzzle","kind":"act","impl":"imperative","description":"Load a Sudoku the human pasted. grid is 81 cells (digits, 0 or . for blanks). Spaces and line breaks are allowed. Rejects invalid, unsolvable, or non-unique grids. Resets the board.","inputSchema":{"type":"object","properties":{"grid":{"type":"string","description":"81 Sudoku cells as digits. Use 0 or . for empty cells."}},"required":["grid"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Media & Personal","favicon":"/favicons/givens.netlify.app.ico","apiSurface":"spec","toolCount":14}}