{"version":"2.1.312","anchor":"askuserquestion-answers-can-carry-unanswered-annotations","canonical_anchor":"askuserquestion-answers-can-carry-unanswered-annotations","heading":"AskUserQuestion: questions must stand alone, and unanswered questions can be marked","tier":"use","area":"SDK","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.312\/e\/askuserquestion-answers-can-carry-unanswered-annotations","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.312","markdown":"### AskUserQuestion: questions must stand alone, and unanswered questions can be marked\n\nAskUserQuestion's instructions now say the user may see only the question dialog, and hosts can mark a question skipped, replied in chat or dismissed\n\n**What**\n\n`AskUserQuestion` is the tool Claude uses to put a question to you in a dialog.\n\n- Its description gains a paragraph: \"The user may see only the question dialog: tool results and text you wrote earlier in this turn may not be on their screen while it is open. Make each question stand on its own: if it depends on something you found, say so briefly, and name the items you are asking about in the question itself.\" It appears in the main, agent and compaction prompts. In a capture taken under this release, the longest version of the description is 2,083 characters.\n\n- A new capability, `ask_user_question_unanswered_v1`, lets the program hosting Claude Code (an SDK host) mark a question as not answered. It sets `annotations[question].unanswered` to `skipped`, `replied_in_chat` or `dismissed`, and the tool result passes that value on. A strict host refuses any other value.\n\n**Why**\n\nQuestions from Claude should make sense on their own, without the earlier output on screen. Programs built on Claude Code can also tell Claude that a question was skipped or dismissed instead of answered.\n\n- Area: SDK\n- Names: `ask_user_question_unanswered_v1`\n- Tier: Use it now\n- Useful: 5\/5\n- Signal: 3\/5\n- Scope: individual\n- Heads-up: no"}