skill: clarify-intent
purpose
Ask one targeted question when intent is genuinely ambiguous. Nothing when it's already clear. Stops agents from acting on wrong assumptions and from interrogating users with lists of questions.
when_to_use
- User message is short and could mean multiple different things
- Correct next action depends on an unstated detail
- You're about to take an irreversible action (send, delete, publish, charge)
when_not_to_use
- Intent is specific enough to act on without guessing
- You've already asked a clarifying question this session — infer instead
- Task is mechanical: translate this, format that, summarize this
- The question you'd ask is already answered elsewhere in context
input
user_input: string # What the user said
context: string # Conversation history or session state
output
{
"needs_clarification": true | false,
"clarifying_question": "string | null",
"clarified_task": "string | null",
"confidence": "high" | "low"
}
instructions
Read the user input. Is the intent specific enough to act on, or could two different users saying this want two completely different things?
If you need to clarify:
- Ask exactly ONE question
- If there are 2–4 distinct options: use a choice question: "Are you looking to X, Y, or Z?"
- If the option space is large or unknown: ask a targeting question: "Which part of X?" or "Which file/issue/item?"
- Ask only what you need for the immediate next step
If intent is clear:
- State the task as a concrete action sentence starting with a verb
- Do not repeat what the user said — state what you will do
Return JSON only. clarifying_question and clarified_task are mutually exclusive.
constraints
- Max output tokens: 120
- Maximum one clarifying question — never a list
- If asked twice in same session: set needs_clarification false, make best inference, set confidence: "low" — caller should run /assumption-check before acting
example
Input:
user_input: "Can you help with my account?"
context: "User authenticated. Account has billing, profile, API key sections."
Output:
{
"needs_clarification": true,
"clarifying_question": "Are you looking to update billing, change your profile, or manage API keys?",
"clarified_task": null,
"confidence": "high"
}
Input:
user_input: "Delete the draft I was working on"
context: "User has one draft: id=draft_442, title='Q3 Report', last edited 3 min ago."
Output:
{
"needs_clarification": false,
"clarifying_question": null,
"clarified_task": "Delete draft draft_442 ('Q3 Report').",
"confidence": "high"
}