$npx -y skills add Codagent-AI/agent-skills --skill ask-questionsHow to ask users questions interactively: which tool to use, how to batch questions, and when to ask serially. Follow this skill when asking clarifying questions, requesting confirmation, collecting missing requirements, or pausing for user input. Invoked by other skills rather t
| 1 | # Ask Questions |
| 2 | |
| 3 | This skill encodes how to ask users questions effectively. It is **not invoked directly** by the user — it is invoked by other skills whenever they need to collect information through interactive dialogue. |
| 4 | |
| 5 | ## Which Tool to Use |
| 6 | |
| 7 | Prefer a dedicated question/input tool when the runtime makes one available for the current turn, but do not fail just because that tool is unavailable. |
| 8 | |
| 9 | Use this decision order: |
| 10 | |
| 11 | 1. **Dedicated question tool available** — use the runtime's native input-requesting tool. |
| 12 | - **Claude**: use `mcp__ide__askQuestion` or `ask_followup_question` when available. |
| 13 | - **Codex Plan mode**: use `request_user_input` when available. |
| 14 | - **Other agents**: use the equivalent input-requesting tool for the runtime (for example, `request_input`, `ask_user`, or similar). |
| 15 | 2. **No dedicated tool, but the session is interactive** — ask the question directly in chat, then stop and wait for the user's answer. Do not continue with assumptions after asking. |
| 16 | 3. **Headless/non-interactive session** — do not ask the user. Return a blocker/ambiguity explaining what decision is needed, or follow the caller skill's headless fallback instructions if it defines one. |
| 17 | |
| 18 | The goal is to explicitly pause for user input before continuing. A dedicated tool is preferred because it enforces the pause, but an interactive plain-chat question is the correct fallback when the runtime does not expose that tool. |
| 19 | |
| 20 | <HARD-GATE> |
| 21 | Do not proceed past an unresolved user decision. If you ask a question with a dedicated tool, wait for the tool response. If you ask in plain chat, end the turn and wait for the user's reply. In headless mode, return the ambiguity instead of inventing an answer. |
| 22 | </HARD-GATE> |
| 23 | |
| 24 | ## Batching Strategy |
| 25 | |
| 26 | **Prefer asking 2–4 questions at a time when the caller skill does not require serial discovery.** Batching reduces round-trips and respects the user's time. |
| 27 | |
| 28 | ### When to batch (default) |
| 29 | |
| 30 | Group related questions into a single tool call when: |
| 31 | - The questions are independent of each other (answering one doesn't change what you'd ask next) |
| 32 | - They cover the same topic or decision area |
| 33 | - 2–4 questions fit naturally together |
| 34 | |
| 35 | **Good batch example** (for a spec clarifying session): |
| 36 | > 1. What happens when a user submits the form with an empty required field — validation error inline, or blocked on submit? |
| 37 | > 2. Should validation run on blur (leaving the field) or only on submit? |
| 38 | > 3. Are there any fields that should be optional in draft mode but required on final submit? |
| 39 | |
| 40 | ### When to ask one question at a time (serial) |
| 41 | |
| 42 | Ask a single question when: |
| 43 | - The answer determines what the *next* question should be (a branching decision point) |
| 44 | - The question is a binary gate that may end the conversation entirely (e.g., "Is this change approved?") |
| 45 | - The caller skill explicitly says to ask questions one at a time |
| 46 | |
| 47 | **Good serial example:** |
| 48 | > "Before I write the spec file, does this look right to you?" ← wait for yes/no before continuing |
| 49 | |
| 50 | Even when asking serially, prefer the dedicated question tool when available; otherwise ask directly in chat and stop. |
| 51 | |
| 52 | ### Anti-patterns |
| 53 | |
| 54 | - **Asking 1 question when 3 are independent** — unnecessarily drag out the conversation |
| 55 | - **Asking 7 questions at once** — overwhelming; users stop reading carefully past question 3 |
| 56 | - **Asking in prose and then continuing** — the agent may proceed without the answer; if you ask in chat, stop there |
| 57 | - **Asking follow-up questions that ignore the dependency** — if Q1's answer eliminates Q3, drop Q3 |
| 58 | |
| 59 | ## Question Quality |
| 60 | |
| 61 | - **Explore first** — do not ask the user for facts you can discover from the repo, docs, config, or prior artifacts |
| 62 | - **Ask only load-bearing questions** — the answer should change behavior, scope, architecture, risk, sequencing, or acceptance criteria |
| 63 | - **Decide low-risk implementation details yourself** — when the codebase points to a reasonable answer, use it; at the next approval gate, include a compact "Low-level decisions I made" list for approval |
| 64 | - **Prefer multiple-choice** when the option space is bounded — easier to answer quickly |
| 65 | - **Open-ended is fine** when the space is genuinely open (e.g., "What should happen when X?") |
| 66 | - **Provide context with each question** — quote relevant material if needed so the user isn't switching context |
| 67 | - **Recommend a path** — for trade-off questions, briefly state the recommendation and why before presenting options |
| 68 | - **Name the default** — if the user does not care, say you can proceed with the recommended option |
| 69 | - **One topic per question** — don't bundle two decisions into one question |
| 70 | - **Ask discovery questions before approval question |