AgentSkillsCN

asking-users

有效使用 AskUserQuestion 工具的协议规范。适用于信心关口、破坏性操作、多步骤任务,以及 UI/UX 决策场景时使用。

SKILL.md
--- frontmatter
name: asking-users
description: Protocol for using AskUserQuestion tool effectively. Use for confidence gates, destructive actions, multi-step tasks, and UI/UX decisions.
status: Active
version: 1.0.0
triggers:
  - confidence below certainty
  - destructive actions (delete, overwrite, publish, commit, deploy)
  - multi-step tasks (3+ steps)
  - UI/UX decisions (visual, design, layout)
  - any assumption being made

Asking Users

AskUserQuestion is a core feature for user confirmation and preference collection.

The Fundamental Principle

text
Serving users means ASKING, not ASSUMING.

Every significant action should have user confirmation. The cost of asking is tokens. The cost of assuming wrong is trust.

Mandatory Triggers

AskUserQuestion MUST be invoked when ANY of these conditions apply:

1. Confidence Gate

If you find yourself thinking "I think this is what the user wants" - that thought means you should ask first.

2. Destructive Actions

ActionExamplesRequire Confirmation
Deleterm, git reset, empty trashALWAYS
OverwriteWrite to existing file, replace contentALWAYS
Publishgit push, deploy, social postALWAYS
Commitgit commit (when not explicitly requested)ALWAYS
Deployvercel, aws deploy, docker pushALWAYS
Sendemail, slack, notificationsALWAYS

3. Multi-Step Tasks

Any task with 3+ distinct steps requires checkpoint questions.

Rule: Never execute more than 3 steps without a checkpoint.

4. UI/UX Decisions

ANY visual or design choice requires confirmation:

Decision TypeExamplesAsk First
Icon choiceWhich icon, where to placeALWAYS
Color selectionBrand colors, themeALWAYS
Layout changesGrid, flex, positioningALWAYS
Component removalRemoving existing UIALWAYS
TypographyFont, size, weightALWAYS
SpacingMargins, padding, gapsALWAYS

5. Assumption Detection

When you detect yourself making an assumption, stop and ask.

Pattern to recognise:

  • "I'll assume..."
  • "This probably means..."
  • "The user likely wants..."
  • "Based on context, I think..."

Each of these phrases should trigger AskUserQuestion.

Question Design

The Bidirectional Pattern

text
Pattern: "[Tool] can [capability]. [preference choice]?"
Result: User learns capability EXISTS + Claude learns preference

Anti-Patterns

Never DoWhy
Mention "Other" in optionsIt's implicit in the tool
Two options, same destinationViolates DRY
Vague optionsBe concrete
More than 4 optionsTool constraint

Good Question Structure

text
Question: Clear, specific, ends with ?
Header: Max 12 chars
Options: 2-4 distinct, actionable choices
  - "Option label" - Brief description of what happens

Token Budget

ComponentTokens
SKILL.md load~600
Per AskUserQuestion~150-200
Acknowledgment~50

ROI: Prevents assumption errors (5k-50k tokens wasted on wrong path).

Validation Checklist

Before any significant action, verify:

  • High confidence in interpretation
  • No destructive action without confirmation
  • Multi-step tasks have checkpoints every 3 steps
  • UI/UX decisions are confirmed
  • No assumptions being made
  • Question follows bidirectional pattern
  • Options are 2-4, concrete, distinct

The Principle

text
The cost of asking is tokens.
The cost of assuming wrong is trust.