| name | ask-questions-if-underspecified |
| description | Ask the minimum clarifying questions before implementation when requirements are ambiguous or missing crucial details |
| version | 1.2.0 |
| category | Planning & Architecture |
| agents | ["planner","developer","architect"] |
| model | sonnet |
| invoked_by | both |
| user_invocable | true |
| tools | ["Read","Write","Bash"] |
| tags | ["clarification","requirements","underspecified","questions","scope","ambiguity"] |
| verified | true |
| lastVerifiedAt | "2026-03-01T00:00:00.000Z" |
| best_practices | ["Follow existing project patterns","Document all outputs clearly","Handle errors gracefully"] |
| error_handling | graceful |
| streaming | supported |
| source | builtin |
| trust_score | 100 |
| provenance_sha | 5fa7e785c76f411b |
Ask Questions If Underspecified
Ask Questions If Underspecified Skill - Ask the minimum clarifying questions before implementation when requirements are ambiguous or missing crucial details
- Identify ambiguous or missing requirements that would block correct implementation
- Generate minimum viable clarifying questions with concrete best-guess defaults
- Distinguish scope/constraint questions (ask) from implementation detail decisions (decide yourself)
- Unblock parallel work by proceeding with stated defaults while awaiting answers
Step 1: Assess Underspecification
Identify which aspects are unclear or missing:
- Scope: What exactly should be included/excluded?
- Constraints: Performance targets, platform requirements, security rules?
- Acceptance criteria: How will the user judge success?
- Priority: Which conflicting options should win?
Do NOT ask about things you can determine by reading existing code and conventions.
Step 2: Triage Questions
Categorize each candidate question:
| Type | Ask or Decide? |
|---|
| Scope boundary (what to include) | Ask |
| Non-functional requirement (perf/security target) | Ask |
| Acceptance criteria | Ask |
| Implementation approach | Decide yourself |
| Code style / naming | Decide yourself (follow existing patterns) |
| Nice-to-have polish | Decide yourself (proceed with sensible default) |
Step 3: Ask Concisely (Max 3 Questions)
For each blocking question:
- State what you assume (best-guess default)
- Ask the specific question in one sentence
- Offer 2–3 concrete options when applicable
Format:
I'll [proceed with X default assumption]. Quick questions before I start:
1. [Specific question]? (default: [assumption])
2. [Specific question]? (default: [assumption])
</execution_process>
<best_practices>
- Provide defaults with every question: Always state your best-guess assumption so the user can simply confirm rather than answer from scratch
- Ask about outcomes, not implementation: "Should this support offline use?" not "Should I use IndexedDB or localStorage?"
**Example — Underspecified feature request:**