# Ask User

> Conventions for asking the user questions during a workflow via the AskUserQuestion tool. Other skills reference this to keep prompts consistent and structured.

- Skill: `desplega-ai/ask-user` (Agent Skill)
- Install (CLI): `npx skillmds@latest add desplega-ai/ask-user`
- Raw SKILL.md: https://api.skillmd.com/api/skills/desplega-ai/ask-user/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: desplega-ai (https://skillmd.com/u/desplega-ai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/desplega-ai/ask-user

---


# Ask User

Thin helper that codifies how to ask the user questions during a workflow. Other skills (planning, research, brainstorming, implementing) reference this skill instead of duplicating AskUserQuestion conventions.

## Core Rule

**Use the AskUserQuestion tool — never as plain-text bullets in chat.**

Asking in chat looks like a request for free-form prose; AskUserQuestion gives the user one click per decision and the answer is structured. Always prefer the tool.

## When to Use

- Clarifying ambiguous user input
- Choosing between viable design options
- Confirming a non-trivial assumption before acting on it
- Approving a phase boundary, plan structure, or destructive action
- Capturing a workflow preference (e.g., commit-per-phase)

## When NOT to Use

- Rhetorical questions or thinking-out-loud
- Asking permission for trivial, reversible actions (just do them)
- "Is the plan ready?" / "Should I proceed?" — those are not decisions, they're checkpoints; just present the artifact and stop

## Conventions

### Question shape

- **One sentence**, ends with `?`
- Include enough context that the user doesn't need to scroll back
- Don't reference invisible artifacts ("does the plan look good?" — they may not see it yet)

### Options

- 2–4 mutually exclusive choices
- Each option: 1–5 word **label**, plus a one-sentence **description** explaining the trade-off or implication
- If you have a recommendation, put it **first** and append `(Recommended)` to the label
- Never include "Other" — the tool adds it automatically

### Header chip

- Max 12 characters, names the *axis* of the choice (e.g. `Auth method`, `Approach`, `Scope`)

### Multi-select

Use `multiSelect: true` only when choices are non-exclusive (e.g., "which features to enable?"). Default is single-select.

### Batching

If you have multiple independent questions to ask at the same checkpoint, send them in **one** AskUserQuestion call (up to 4 questions) — don't ping-pong.

## Good Example

```
question: "Which storage backend should the worker use?"
header: "Storage"
options:
  - label: "Postgres (Recommended)"
    description: "Existing infra, transactional, easy to query. Adds one new schema."
  - label: "Redis"
    description: "Faster but requires new ops. Lossy on eviction — bad fit for audit data."
  - label: "S3 + manifest"
    description: "Cheapest at scale but adds latency and a sync layer."
```

## Bad Examples

```
"What do you think?"                      → too vague, no options
"Should I continue? (yes/no)"             → checkpoint, not a decision; just stop
"Pick one: A, B, C, D, E, F, G"           → too many options; collapse or split
"Want me to also fix the typo?"           → trivial reversible action; just do it
```

