interactive-questions
Original:🇺🇸 English
Translated
This skill should be used when the user asks to "ask questions interactively", "use the question tool", "present choices to the user", "avoid yes/no prompts", "use interactive confirmations", or needs guidance on asking structured questions with selectable options instead of free-text prompts.
2installs
Added on
NPX Install
npx skill4agent add the-perfect-developer/the-perfect-opencode interactive-questionsTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Interactive Questions with the Question Tool
Use the tool to ask users structured, interactive questions with selectable options instead of plain yes/no or free-text prompts. This produces a numbered option list the user navigates with arrow keys and confirms with Enter.
questionCore Rule
Never ask a yes/no question in plain text when the answer can be expressed as a set of options. Always use the tool with explicit choices.
questionWrong:
"Do you want to proceed? (yes/no)"
Right: use the tool with options such as "Proceed" and "Cancel".
questionWhen to Use the Question Tool
Use it whenever you need the user to make a decision:
- Confirmation — before destructive or irreversible actions (delete, overwrite, push, deploy)
- Strategy selection — when multiple valid approaches exist and user preference matters
- Clarification — when a request is ambiguous and each interpretation leads to meaningfully different work
- Multi-step workflows — to let the user steer direction between phases
Do not use it for simple informational acknowledgement where no decision is required.
How to Call the Question Tool
The tool accepts an array of . Each question has:
questions| Field | Required | Notes |
|---|---|---|
| yes | The full question text shown to the user |
| yes | A very short label (max 30 chars) shown as the prompt title |
| yes | Array of |
| no | Set |
The tool automatically appends a "Type your own answer" option — do not add an "Other" catch-all yourself.
Option Design Rules
- Label: 1–5 words, concise action or noun phrase (e.g., "Proceed", "Cancel", "Edit message")
- Description: one sentence explaining what that choice does (e.g., "Commit with the proposed message", "Abort the operation")
- Order: put the recommended or most common option first; add at the end of its label when helpful
(Recommended) - Coverage: include all meaningful paths — at minimum a "do it" option and a "cancel" option
- No duplicates: each option must represent a distinct outcome
Confirmation Pattern
For any action that cannot easily be undone, use a three-option confirmation:
Proceed with <action>?
1. Proceed (Recommended) — <short description of what happens>
2. Cancel — Abort the operation
3. Edit / Adjust — <relevant alternative, e.g., "Provide a revised message">Strategy Selection Pattern
When multiple valid approaches exist:
How should I handle <situation>?
1. <Approach A> (Recommended) — <one sentence tradeoff>
2. <Approach B> — <one sentence tradeoff>
3. <Approach C> — <one sentence tradeoff>Always explain the tradeoff in the description so the user can decide without needing additional context.
Clarification Pattern
When a request is ambiguous, clarify before starting work rather than assuming:
What should <term / feature> include?
1. <Interpretation A> — <what this means concretely>
2. <Interpretation B> — <what this means concretely>Limit clarification questions to genuine ambiguities. Do not ask about details you can decide using reasonable defaults.
Multiple Selection
Set only when the user genuinely needs to pick more than one item — for example, selecting which files to include, which environments to target, or which checks to run. Keep the option list short (2–7 items) to avoid overwhelming the user.
multiple: trueAvoid These Anti-Patterns
| Anti-pattern | Problem | Fix |
|---|---|---|
| Asking yes/no in text | Requires typing; no structured response | Use |
| Too many options (8+) | Overwhelming; hard to scan | Group related options or split into sequential questions |
| Vague labels ("Option 1") | User cannot decide without reading description | Use action-oriented labels ("Deploy to staging") |
| Catch-all "Other" option | Redundant — tool adds "Type your own answer" automatically | Remove it |
| Asking every minor detail | Slows workflow; irritates user | Reserve questions for decisions that genuinely affect the outcome |
| Multiple questions at once | Harder to process | Ask one question per tool call unless questions are tightly coupled |
Quick Reference
question tool fields:
questions[].question — full question text
questions[].header — short label (≤30 chars)
questions[].options[]
.label — 1–5 words
.description — one sentence
questions[].multiple — true | false (default false)
Do NOT add "Other" — tool appends "Type your own answer" automatically.
Put recommended option first, label it "(Recommended)".