Use whenever you need a decision, clarification, or approval from the user — covers how to ask with the question tool, and how to resolve the decision yourself when no user is available (question tool absent, or a [Never-Ask] response)
Every time you need the user to decide, clarify, or approve something, route it through the question tool. Never stop the loop with a natural-language question ("Does this look right?", "Should I proceed?", "Which would you prefer?"). A natural-language question ends your turn without finishing the task; a question tool call does not.
This means: the loop only ends when the task is actually complete — never because you paused to ask in prose.
options (each with a short label and a description).options. An empty options list renders as a free-text prompt: the user types whatever they want. So anything you'd normally ask in prose can be asked through question instead.question({
questions: [{
question: "Which auth strategy should I use?",
header: "Auth",
options: [
{ label: "Session cookies", description: "Server-side sessions, simplest" },
{ label: "JWT", description: "Stateless, good for multiple services" },
],
}],
})There are two situations where you won't get a human answer. The decision behavior is identical in both — you pick the best option for unattended/headless execution yourself and keep going. They differ only in whether the question tool is reached this turn:
run/eval, where question is denied) — the tool isn't in your list. You never call it; decide and proceed directly.[Never-Ask] response (never-ask is on) — you do call question, but instead of a user answer the tool returns a [Never-Ask] directive. Re-pick from the options you proposed, explicitly state your choice and reasoning in your response text, and continue.The best option for a human is often not the best option for headless execution. Re-evaluate your own options through this lens:
Autonomous resolution applies only to the current question. Do not infer "I should stop using the question tool from now on." never-ask can be turned off at any moment, and the question tool may reappear — at the next decision point, ask normally again. The user may have returned.
This is the single source of truth for asking and autonomous fallback. Other compose skills reference it at their decision points instead of repeating fallback text, so the rules stay consistent and the prompts stay small.
ff87d47
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.