Use when a small amount of missing context would materially improve the answer and tappable options plus a free-text answer can gather it efficiently.
69
83%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
ask_user_inputpurpose: present tappable options plus a free-text option to gather user preferences before providing advice. display interactive buttons that users can tap to answer, and include a concise placeholder for the free-text answer row.
when to use this tool:
question quality requirements:
free-text placeholder requirements:
when NOT to use this tool:
key instructions:
Invocation: // Insert directly: genui{"ask_user_input": {"questions": {...}}} // This widget is not eligible for UUID Mode.
Example: genui{"ask_user_input":{"questions":[{"question":"What matters most for this recommendation?","options":["Lower cost","Less effort","Best quality"],"type":"multi_select","free_text_placeholder":"Add another priority"}]}}
Args schema:
// AskUserInputWidgetData
{
// Questions
//
// Ordered list of one-question pages to render.
// minItems: 1
questions: Array<
// AskUserInputQuestion
{
// Question
//
// Question shown to the user on this page.
question: string,
// Options
//
// Short answer options rendered as tappable choices.
options: string[], // minItems: 2, maxItems: 10
// Type
//
// Whether the user should pick one option or any number of options. Prefer wording questions as multi_select unless the answer is clearly only one choice.
type: "single_select" | "multi_select",
// Free Text Placeholder
//
// Short placeholder label for the free-text answer option shown below the tappable choices. Make it specific to this question.
free_text_placeholder: string,
}
>,
}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.